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

" WHERE UserID = " . $AccID

哪里
$AccID = $_SESSION['UID'];

UserID是db的特定表中相关的bigint列。
所以我的问题是:我需要像这样逃离$AccID是为了安全起见,还是没有必要,因为它不是从用户输入中获取的?
p.s.GetSQLValueString($AccID, "text")在成功验证后,在登录过程中设置

最佳答案

是的,你应该逃离它。当您将其放入$_SESSION时(您可能希望将其用于其他目的),不应在插入查询之前对其进行数据库转义。
不过,最好使用参数化SQL,而不是总是通过字符串连接来转义和构建查询。熟悉PDOFor a better world

09-25 16:39