回答
如果您擔心成爲攻擊的目標,那麼您應該始終確保表單是從您的網站提交的,而不是從外部提交的資源。你可以使用會話:如果會話中的值,表單沒問題,否則表單使用機器人提交。
如果您擔心託管惡意腳本,那麼是的,您必須避開所有用戶輸入的內容以供公共和管理員使用。
這應該更容易:
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. 用strip_tags()防止XSS?
- 3. XSS預防PHP
- 4. 功能PHP防止SQL注入和XSS
- 5. PHP:如何完全防止XSS攻擊?
- 6. 防止陣列從XSS
- 7. Json.Net Wrapper防止Xss攻擊
- 8. HTML-Entity轉義防止XSS
- 9. angularjs防止XSS攻擊
- 10. 防止WCF調用中的XSS攻擊
- 11. 輸出用戶輸入 - 防止xss
- 12. 如何使用Struts防止XSS漏洞
- 13. 替代使用c:out來防止XSS
- 14. PHP XSS預防白名單
- 15. 使用PHP來防止圖像內的XSS攻擊
- 16. 防止XSS(跨站點腳本)
- 17. 從HTML元素中防止XSS
- 18. 自動轉義,以防止XSS
- 19. 防止SQL注入和XSS攻擊
- 20. Java 5 HTML轉義防止XSS
- 21. 如何防止CSS中的XSS?
- 22. 在.NET中防止xss OWASP指南
- 23. 清理URL以防止Rails中的XSS
- 24. 防止Magento中的XSS攻擊
- 25. 在innerHTML的屬性防止XSS
- 26. 防止XSS在Spring MVC控制器
- 27. 防止內嵌Java腳本XSS注入
- 28. 防止XSS,但允許所有字符?
- 29. JSF 2.0; escape =「false」替代防止XSS?
- 30. 確實body-parser的urlencode防止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