mysql_real_escape_string:单独的数据库安全性是否足够?

时间:2010-06-26 08:15:06

标签: php security

mysql_real_escape_string用于SQL语句。单独的数据库安全性是否足够?例如,get_magic_quotes_gpc()我们使用了stripslashes。有关使用mysql_real_escape_string的其他函数我们必须知道的任何问题吗? 提前致谢

3 个答案:

答案 0 :(得分:3)

如果您想拥有一个更安全的数据库,只需转义字符串是不够的。这肯定有助于SQL注入攻击,但还有许多其他方法可以破坏数据库。

一些指示:

  1. 练习“最小权限”,因为对数据库具有GRANTed访问权限的用户和帐户应具有完成其任务的最低权限,而不是其他任何权限。
  2. 确保您的密码难以猜测(由低位和高位字母,数字,符号等组成)并定期更改。
  3. 除非绝对必要,否则请勿保存信用卡号码(假设您正在运营商业网站)。
  4. 如果您拥有用户帐户
  5. ,则在将密码存储到数据库之前,可以对密码进行哈希处理
  6. 检查并仔细检查端口号(MySQL为3306)以及文件和目录的权限,尤其是在用户上传文件时
  7. 这些通常是很好的做法,你应该知道SQL注入攻击范围之外的数据库的问题。

答案 1 :(得分:2)

不是真的。 SQL语句不同。对于其中一些人来说,这对其他人有帮助 - 不是。

我最近回答了这个问题:In PHP when submitting strings to the database should I take care of illegal characters using htmlspecialchars() or use a regular expression?

希望它可以为您提供完整的图片,但欢迎您询问是否有不明确的事情。

请注意,get_magic_quotes_gpc()和stripslashes不是数据库问题。它只是输入数据验证的东西,它与SQL

无关

答案 2 :(得分:0)

1)关闭magic_quotes_gpc
2)mysql_real_escape_string()

是否足够