如何限制用戶可以輸入到文本框中的HTML類型?我正在運行一個小型論壇,使用一些我正在測試的自定義軟件,但我需要知道如何限制HTML輸入。有什麼建議麼?將HTML輸入限制爲文本框
1
A
回答
2
我建議稍微另一種方法:
- 不過濾傳入的用戶數據(除預防SQL注入攻擊)。用戶數據應儘可能保持純淨。
- 過濾數據庫中的所有傳出的數據,這是哪裏的東西像標籤剝離等。應該發生
保持用戶數據的清潔讓你在它是如何顯示的更多的靈活性。過濾所有外發數據是一個很好的習慣(沿着永不相信的數據模型)。
0
提交文本後,您可以使用PHP中的正則表達式去除任何/所有與您的預定義集合不匹配的標籤。
它看起來像下面這樣:
find open tag (<)
if contents != allowed tag, remove tag (from <..>)
0
解析輸入提供,剝離不完全匹配您允許列表中的所有HTML標籤。這可以是一個複雜的正則表達式,也可以通過輸入字符串的char []進行有狀態迭代,從而構建允許的輸入字符串並剝離
img
等標籤上的不需要的屬性。使用不同的代碼系統(BB代碼,降價)
找一些代碼網上說已經這樣做了,爲您實施的基礎來使用。例如Slashcode必須執行此,因此尋找其在Perl實現,並使用正則表達式(我認爲是有)
2
您沒有說明什麼論壇是內置的,但如果它的PHP,退房:
庫特徵:白名單,搬運,良好的,嵌套,屬性,XSS安全標準安全
0
無論你使用什麼,一定要知道什麼樣的HTML內容可能是危險的。
例如一個<腳本>標記非常明顯,但在IE中,style>標記與一樣糟糕,因爲它可以調用JScript命令。
實際上,任何style =「...」屬性都可以在IE中調用腳本。
<對象>將是一個更多的標記是厭倦的。
0
PHP帶有一個簡單的功能strip_tag去除HTML標籤。它允許某些標籤不被剝離。
實施例#1用strip_tags()的例子
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>
上面的示例將輸出:
Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
個人的一個論壇,我會用BB代碼或降價因爲量支持和功能,如實時預覽。
相關問題
- 1. HTML文本輸入限制
- 2. HTML文本框限制在十進制輸入
- 3. 如何將文本框輸入限制爲html中的數字0-10
- 4. 文本框用戶輸入限制
- 5. 將輸入框限制爲0-100
- 6. 將文本框/文本框中的輸入限制爲僅在J2me中使用字母數字輸入
- 7. 將VBA userform文本框中的輸入限制爲僅限數字
- 8. 將文本框輸入限制在C#中的數字#
- 9. 將純文本輸入轉換爲HTML
- 10. 如何將文本框的textchanged事件限制爲鍵盤輸入?
- 11. 使用jQuery將HTML文本輸入更改爲密碼輸入
- 12. 將輸入框文本打印爲簡單文本而不是html標記
- 13. 將HTML輸入限制爲固定長度數字
- 14. 將輸入限制爲僅限整數(文本崩潰PYTHON程序)
- 15. 文本輸入限制Flex3空氣
- 16. 限制輸入在編輯文本
- 17. JavaScript限制文本輸入字符
- 18. 文本輸入字符限制
- 19. Frabricjs - 限制文本輸入區域
- 20. HTML文本框輸入工具提示?
- 21. 獲取HTML文本框輸入
- 22. 如何居中輸入文本框HTML?
- 23. 的Html透明文本輸入框
- 24. HTML如何淡出輸入文本框
- 25. 在html文本框中輸入ascii
- 26. 將用戶輸入限制爲HHMMSS
- 27. 將用戶輸入限制爲字母
- 28. 強制在文本框上的文本輸入爲am/pm
- 29. 如何限制輸入文本框允許只有0和1
- 30. 限制在文本框中允許的字符(輸入金額)
重要的是使用白名單 - 尋找你將允許的標籤,而不是搜索你不想要的標籤。 – 2008-10-01 18:03:53