HTMLPurifier Не работает? - PullRequest
       16

HTMLPurifier Не работает?

0 голосов
/ 10 мая 2011

Я провожу HTMLPurifier через несколько тестов, чтобы убедиться, что все работает как положено. Я использую примеры из http://ha.ckers.org/xss.html. Я думаю, что все, что я кодировал, «правильно», но я могу пропустить один из примеров xxs. Кто-нибудь может мне помочь?

Вот страница common1.php, которая объявляет функцию и обрабатывает данные:

$config = HTMLPurifier_Config::createDefault();

// configuration goes here:
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding
$config->set('HTML.Doctype', 'XHTML 1.0 Strict'); // replace with your doctype

function purify($data){
    $purifier = new HTMLPurifier($config);
    // untrusted input HTML
    $pure_html = htmlspecialchars($purifier->purify($data));

    return $data;
 }
?>

А вот мой сценарий отладки, который пытается (и успешно 0_o) передать xxs:

<?php
    include('common1.php');

    $t = "<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">";
    echo purify($t);
?>

1 Ответ

3 голосов
/ 10 мая 2011

Вы возвращаете неочищенную наценку.Измените выписку:

 function purify($data){
    $purifier = new HTMLPurifier($config);
    // untrusted input HTML
    $pure_html = htmlspecialchars($purifier->purify($data));

    return $pure_html;
 }
...