用PHP安全html过滤?

时间:2010-07-29 17:36:18

标签: php html filter

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和强大,这是否只是从xss安全?如果不是我们如何保护它?

2 个答案:

答案 0 :(得分:12)

您是否查看了htmlpurifier等现有解决方案?你真的不想编写自己的HTML解析器 - 当然也不想编写正则表达式。

答案 1 :(得分:4)

我认为strip_tags有答案。

http://us2.php.net/strip_tags

您可以删除不需要的字段,而不是启用某些字段。即:linkstylescriptiframeframe