gpt4 book ai didi

php - 准备好的语句和二阶 SQL 注入(inject)

转载 作者:行者123 更新时间:2023-11-29 05:23:41 24 4
gpt4 key购买 nike

我在这里的某个地方读到,在 PDO 中使用准备好的语句可以让您的应用仅对一阶 SQL 注入(inject)免疫,但不能完全免疫二阶注入(inject)。

我的问题是:如果我们在包括 SELECT 查询在内的所有查询中都使用准备好的语句,而不仅仅是在 INSERT 查询中,那么二阶 sql 注入(inject)怎么可能呢?

例如,在以下查询中,没有机会进行二阶注入(inject):

写:

INSERT INTO posts (userID,text,date) VALUES(?,?,?)

阅读:

SELECT * FROM posts WEHRE userID=?

删除:

DELETE FROM posts WHERE userID=?

最佳答案

您所阅读的完全是垃圾。写它的人根本不知道。

您不应该将准备好的语句用于查询,而应该用于数据。每次您必须将变量添加到查询中时,您必须仅通过占位符进行添加。因此,您的查询分离理论毫无意义:无论是 SELECT 还是 ALTER 或 GRANT 或其他什么都没关系。唯一重要的是——是否有任何变量进入查询。

关于php - 准备好的语句和二阶 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22724818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com