безопасная фильтрация HTML с php? - PullRequest
0 голосов
/ 29 июля 2010
function validCleanHtml( $unclosedString )
{
    preg_match_all( "/<([^\/]\w*)>/", $closedString = $unclosedString, $tags );
    for ( $i = count( $tags[1] ) - 1; $i >= 0; $i-- )
    {
        $tag = $tags[1][$i];
        if ( substr_count( $closedString, "</$tag>" ) < substr_count( $closedString, "<$tag>" ) )
            $closedString .= "</$tag>";
    }
    $validTags = "<em><strong>";
    $validClosedString = strip_tags( $closedString, $validTags );
    return $validClosedString;

}

хорошо, я хочу включить 2 html, em и strong, это просто безопасно от xss? если нет, то как мы можем это обезопасить?

Ответы [ 2 ]

12 голосов
/ 29 июля 2010

Вы смотрели на какие-либо существующие решения, такие как htmlpurifier ?Вы действительно не хотите писать свой собственный анализатор HTML - и, конечно, не с регулярными выражениями.

4 голосов
/ 29 июля 2010

Я думаю, что strip_tags содержит ответ.

http://us2.php.net/strip_tags

Вместо включения определенных полей вы также можете удалить те, которые вам не нужны. А именно: link, style, script, iframe, frame

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...