1

在各种mysql查询中,查询字符串的结尾部分是:

" WHERE UserID = " . $AccID

在哪里

$AccID = $_SESSION['UID'];

并且 UserID 是数据库特定表中尊重的 bigint 列。

所以我的问题是:为了安全起见,我是否需要$AccID像这样逃避GetSQLValueString($AccID, "text"),还是没有必要,因为它不是从用户输入中获取的?

ps$_SESSION['UID']在登录过程中设置,在成功验证后

4

1 回答 1

3

是的,你应该逃避它。当您将其放入时$_SESSION(您可能希望将其用于其他目的),但在插入查询之前,您不应该对它进行数据库转义。

您最好的选择是使用参数化 SQL,而不是总是通过字符串连接转义和构建查询。熟悉PDO为了更美好的世界

于 2012-05-05T21:08:40.317 回答