回答
如果您擔心成爲攻擊的目標,那麼您應該始終確保表單是從您的網站提交的,而不是從外部提交的資源。你可以使用會話:如果會話中的值,表單沒問題,否則表單使用機器人提交。
如果您擔心託管惡意腳本,那麼是的,您必須避開所有用戶輸入的內容以供公共和管理員使用。
這應該更容易:
function h($string) {
return htmlspecialchars($string);
}
你可能要考慮將逃不出你的變量爲你的模板語言:
...除非,如果你是偏執狂的人,你會想要使用'htmlspecialchars($ string,ENT_QUOTES,'UTF-8')' – sdleihssirhc 2011-03-10 04:12:16
他說/ \ \ – Dimitry 2011-03-10 04:13:56
是的,每一次。
唯一更簡單的方法是使用一個模板,爲您做到這一點。自己製作一個,或者看看XSLT或我的個人喜好PHPTAL
模板爲您做了什麼?即,代碼是什麼樣的? – 2011-03-10 04:50:34
它爲你做什麼,它看起來像是非常不同的話題。許多模板具有不同的語法。例如,PHPTAL看起來就像xml。 Smarty看起來醜陋,戴着牙套,但每個人都是自己的。模板系統在您的(x)html代碼中實施結構,將業務邏輯從視圖中分離出來,保持代碼清潔,並且可以自動執行一些任務,例如編碼輸入 – 2011-03-10 14:32:28
它也取決於您所期望的內容類型。例如如果你只希望字母,那麼你可以做
$input = preg_replace("/[^a-zA-Z]*/", "", $input);
,或者如果你只是希望數字
$input = preg_replace("/[^0-9]*/", "", $input);
,或者如果它是混合和其他字符所預期的,那麼你將不得不使用
$input = htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
- 1. PHP防止xss
- 2. PHP防止SQL注入/ XSS
- 3. 用strip_tags()防止XSS?
- 4. 防止DOM XSS
- 5. Struts XSS預防 - 防止GET XSS
- 6. 防止XSS攻擊
- 7. 防止XSS漏洞
- 8. 防止XSS攻擊
- 9. jquery ajax防止xss
- 10. XSS預防PHP
- 11. PHP網站防止XSS有點太好
- 12. 防止通過URL(PHP)XSS攻擊
- 13. PHP:如何完全防止XSS攻擊?
- 14. 功能PHP防止SQL注入和XSS
- 15. 防止xss攻擊/注入
- 16. 防止Javascript和XSS攻擊
- 17. CakePHP的:防止XSS攻擊
- 18. Json.Net Wrapper防止Xss攻擊
- 19. HTML-Entity轉義防止XSS
- 20. angularjs防止XSS攻擊
- 21. 防止陣列從XSS
- 22. 防止Spring MVC中的XSS
- 23. 防止ajax rsargs中的XSS []
- 24. 瀏覽器的X-XSS-Protection/XSS Auditor是否足以防止XSS?
- 25. 輸出用戶輸入 - 防止xss
- 26. 如何使用Struts防止XSS漏洞
- 27. 使用Ajax顯示時防止XSS
- 28. 防止WCF調用中的XSS攻擊
- 29. 用JavaScript編碼防止/理解xss
- 30. 替代使用c:out來防止XSS
使用較短的名稱使封裝函數更簡單。 (也要避免charset參數。)或者在你的模板上使用array_map + htmlescape。 – mario 2011-03-10 04:14:01
[使錯誤的代碼看起來錯了](http://www.joelonsoftware.com/articles/Wrong.html)對這類事情進行了有趣的討論,並在變量名上使用了前綴以確保您不會意外忘記運行htmlspecialchars()。也就是說,手動做任何事情都是一種拖拽 - 抽象化它! – chucksmash 2011-03-10 04:19:06