【发布时间】:2011-08-23 10:38:29
【问题描述】:
我在这里阅读了很多关于过滤用户输入的问答,但大多数时候答案是这取决于你在做什么。这就是我正在做的事情:
通过将在 MySQL 查询中使用的表单提交的数据:
function clean($field, $link)
{
return mysql_real_escape_string($field, $link);
}
通过表单提交的数据将显示在 HTML/PHP 页面或电子邮件中:
function output_html($value)
{
return stripslashes(htmlspecialchars($value));
}
从数据库中显示的数据:
function output_db($value)
{
return stripslashes($value);
}
这足以满足我的需求吗?有什么我没有考虑的吗?
谢谢!
【问题讨论】:
-
您是在询问应用程序的安全性,即 SQL 注入吗?
-
@robert-harvey SQL 注入,并通过 JS 等向我的页面永久添加代码
-
output_db表示您做错了。如果您正确地转义了您的内容,并且没有启用多余的magic_quotes,那么在数据库查询之后就不需要stripslashes()。 php.net/manual/en/security.magicquotes.disabling.php
标签: php mysql html forms input