1

谈到 SQL 注入。

现在,我为我的网站执行以下操作。

  1. 使用 mysql_real_escape_string() 清理查询中的(任何)参数。
  2. 整数数据进入 intval()。
  3. 向拥有 ALL PREVILIGIES 的用户查询。

问题 1:它是否单独防止 SQL 注入?

另外,我正在考虑做以下事情。

我不想对所有预审用户使用查询,而是想为每个任务创建一个用户,例如更新、删除、选择、删除等。

进行查询时,我可以选择要使用的用户

$database->selectUser('SELECT')->runQuery('query');

问题 2: 这对我的安全性有帮助吗?值得这样做吗?

4

1 回答 1

-1

问题 1:一般来说,mysql_real_escape_string 会停止针对您的基本 SQL 注入,但也有例外。看到这个问题

您真的应该将所有代码切换到 Mysqli 或 PDO。

问题 2:这确实无助于您的安全。假设您开始看到数据库中发生了奇怪的事情,并且您认为自己被黑客入侵了……但是它是哪个用户?如果您认为密码已被破解,则必须检查并更改所有密码。

除此之外,您基本上必须为每个帐户定义一个新连接......

创建一个主帐户并给它一个非常好的密码。如果开始发生奇怪的事情,您只需更改一个密码。

于 2013-01-13T01:02:45.733 回答