我怎么能让这个PHP $ _POST更安全? - 它已经安全吗?

时间:2011-07-10 17:56:24

标签: php mysql security post

在我网站上输入的大多数$ _post数据中,我使用以下php:

$example = $_POST['textfield'];
$example = strip_tags($example);
$example = mysql_real_escape_string($example);

然后我会与MySQL数据库进行交互......

这是'安全'/'安全'吗?

上述代码的任何主要漏洞?

- 我如何确保安全?

3 个答案:

答案 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中的最终提示。