我想用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