回答
如果您担心成为攻击的目标,那么您应该始终确保表单是从您的网站提交的,而不是从外部提交的资源。你可以使用会话:如果会话中的值,表单没问题,否则表单使用机器人提交。
如果您担心托管恶意脚本,那么是的,您必须避开所有用户输入的内容以供公共和管理员使用。
这应该更容易:
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