在我网站上输入的大多数$ _post数据中,我使用以下php:
$example = $_POST['textfield'];
$example = strip_tags($example);
$example = mysql_real_escape_string($example);
然后我会与MySQL数据库进行交互......
这是'安全'/'安全'吗?
上述代码的任何主要漏洞?
- 我如何确保安全?
答案 0 :(得分:4)
最后要做的是验证数据:
你可以查看它是否为空字符串?一个号码?或者您期望的任何数据类型。例如,如果您希望收到电子邮件,则可以使用正则表达式来确认它是实际的电子邮件。
答案 1 :(得分:1)
mysql_real_escape_string让它非常安全
它总是取决于你想要对值做什么。 例如。你不要去strip_tags一个密码,你应该只是MD5它。 如果你将它存储在另一个页面上显示,你应该使用html_specialchars来解决 -
和你应该验证的一些东西是输入是一个整数,如果它不包含数字,如果它不是A,...
所以它真的取决于
答案 2 :(得分:1)
虽然mysql_real_escape_string()
可以防止SQL注入,但仍可能存在不需要的行为。
请注意,mysql_real_escape_string()
无法逃脱%
或_
。
因此,如果用户输入例如在%
张贴的表单字段中,LIKE
where子句可能会返回比预期更多的数据。
请参阅PHP手册here中的最终提示。