我想用PHP-based tool HTML Purifier上的文本框,以防止XSS,但我想,以允许以下:最佳设置净化
- 基本标签,如
<b>
,<i>
,<u>
- 链接
- 图像
我想阻止所有CSS和JavaScript。我刚刚尝试过HTML Purifier,但在这种情况下失败了。只要看到this example。我该如何照顾这件事?
另外我想形式#abcd
和@abcd
与自定义HTML 替代(你也能猜到它的链接)的所有单词。这是可能的,还是我必须做我自己的替换?
我想用PHP-based tool HTML Purifier上的文本框,以防止XSS,但我想,以允许以下:最佳设置净化
<b>
,<i>
,<u>
我想阻止所有CSS和JavaScript。我刚刚尝试过HTML Purifier,但在这种情况下失败了。只要看到this example。我该如何照顾这件事?
另外我想形式#abcd
和@abcd
与自定义HTML 替代(你也能猜到它的链接)的所有单词。这是可能的,还是我必须做我自己的替换?
正则表达式和e修饰符
function checkTag($tag) { $tag = removeslashes($tag); ... return $secureTag; } $html = preg_replace("/<[^>]+>/e", " checkTag('\$0')", $input);
我询问了有关html净化器的最佳设置 – aWebDeveloper 2011-02-27 10:47:58
PHP有一个内置的功能,似乎做的正是你想要的。
http://php.net/manual/en/function.strip-tags.php
它甚至有一个白名单功能,因此它可以让一些标签。
对于#abcd
和@abcd
部分,我认为你将不得不使用preg_replace()
。我已经使用了类似的功能,它的功能非常好:)。
$sClickText = preg_replace("/\@([a-zA-Z0-9_])+/",' <a href="#reply" onClick="reply(\'' . "$0" . '\')">' . "$0" . '</a>',$sInputText);
允许的标记有点不安全 - 因为攻击者可以放置onclick,ommouseover参数 – SergeS 2011-02-27 10:43:43
单独的strip_tags对XSS ,但是。 – 2011-02-27 10:43:53
我问了有关html净化器的最佳设置 – aWebDeveloper 2011-02-27 10:47:34
定义“失败”。在'<'之后吞下所有东西并不是很好,但它不是一个安全问题,要么是 – 2011-02-27 10:33:44
,而是像是假阳性 – aWebDeveloper 2011-02-27 10:35:11
,但是为什么,它到底有什么问题呢?这怎么可以用来将恶意内容走私到你的网站? – 2011-02-27 10:37:56