【问题标题】:safe html filtering with php?使用 php 进行安全的 html 过滤?
【发布时间】:2010-07-29 17:36:18
【问题描述】:
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 来说是安全的吗?如果不是,我们如何保护它?

【问题讨论】:

    标签: php html filter


    【解决方案1】:

    您是否查看过任何现有的解决方案,例如 htmlpurifier?您真的不想编写自己的 HTML 解析器——当然也不想使用正则表达式。

    【讨论】:

    • 我认为这样的方法是使用 safehtml 的方式。我认为没有必要重新发明轮子。这正是我一直在寻找的,尽管它可能不是这个问题的原始发布者所寻找的。​​span>
    【解决方案2】:

    我认为strip_tags 是答案。

    http://us2.php.net/strip_tags

    除了启用某些字段之外,您还可以删除不需要的字段。即:linkstylescriptiframeframe

    【讨论】:

    猜你喜欢
    • 2017-06-18
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多