【发布时间】:2012-03-27 16:38:29
【问题描述】:
我在看php.net manual,它有这行代码:
Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> years old.
下面写着:
htmlspecialchars() 确保 html 中的任何特殊字符都被正确编码,因此人们无法将 HTML 标记或 Javascript 注入您的页面。
真的有必要吗?
真的有人可以在这一行中放入恶意代码吗?有什么好担心的?可以在该行中注入一些东西来运行一些 php 代码吗?即使在这种情况下没有威胁,他们是否只是让人们习惯于观察这一点?
【问题讨论】:
-
是的。即使没有安全问题(有,请参阅答案),如果由于有人输入了恰好包含 HTML 标记中使用的某些字符的完美数据而导致分页(或静默删除部分输入),也会非常烦人.
-
我以为你给
htmlspecialcharacters打了两次电话 -
在编写 Web 应用程序时,一个好的经验法则是从不信任用户输入。
标签: php security code-injection