在我的网站上输入的大多数$_post数据,我使用以下php:
$example = $_POST['textfield'];
$example = strip_tags($example);
$example = mysql_real_escape_string($example);
然后我将与MySQL数据库交互…
这是'secure'/'safe'吗?
上述代码是否存在重大漏洞?
-我怎样才能使它安全?
最后一件事是验证数据:
你可以检查它是否为空字符串?一个号码吗?或者任何你想要的数据类型。例如,如果你正在等待一封电子邮件,你可以使用regex来确认它是一封真正的电子邮件。
mysql_real_escape_string使其相当安全
它总是取决于你想对值做什么。如。如果你不想strip_tags一个密码,你应该MD5它。如果您要将其存储在另一个页面上显示,则应该使用html_specialchars来禁用-hacking
有时你应该验证输入是否是整数,如果它不包含数字,如果里面没有A,…
所以这取决于
虽然mysql_real_escape_string()
可以防止sql注入,但仍然可能存在不必要的行为。
注意,mysql_real_escape_string()
不能转义%
或_
因此,如果用户在一个提交的表单字段中输入%
, LIKE
where子句可能返回比预期更多的数据。