1. PHP / Говнокод #23726

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    <?php
    
    $user_data = array(
        'name' => 'Vasya',
        //'comment' => 'Hello, <p>Some HTML</p>', // GOOD
        'comment' => '<!--<script>', // BAD
    );
    
    ?>
    
    <!DOCTYPE html>
    <html>
        <head></head>
        <body>
            <script>
                var data = <?php echo json_encode($user_data); ?>;
    
                window.onload = function () {
                    document.body.appendChild(document.createTextNode(data.name + " says: " + data.comment));
                };
            </script>
        </body>
    </html>

    https://habrahabr.ru/post/348558/

    Интересная херотень.
    Кто сможет подобрать строку, чтобы выполнить произвольный код?

    Запостил: 3_dar, 12 Февраля 2018

    Комментарии (11) RSS

    • P.S. Данный пример только ломает верстку.
      Ответить
    • Божемой, люди до сих пор не осилили нормальный эскейпинг при выводе в HTML
      Ответить
    • ну правда, вдумайтесь: Маск в космос летает, а люди на седьмом десятке существования программирования плутают буквально в двух байтах и не могут нормаль экскейпнуть данные для передачи их через канал где запрещены < и >.

      Причем эту проблему (ну вернее похожую) решали (и решили!) еще во времена ююков (uuencode) -- то-есть тридцать лет назад. И, блядь, снова здорова
      Ответить
      • ебливый пасс в москве угостит анусом, армяне чечены даги азеры - велкам! встреча на любой территории, бдсм амуницию ношу с собой, любые желания за твои деньги! пиши прямо сейчас [email protected] антон ЖДУ
        Ответить
      • Как лучше всего это эскейпнуть?
        Ответить
    • ап
      Ответить

    Добавить комментарий