Php SELECT语句可以被注入吗?

Php SELECT语句可以被注入吗?,php,sql,sql-injection,Php,Sql,Sql Injection,我正在重新编码我站点上的所有sql语句,以使用PDO和准备好的语句。我尽了最大的努力了解SQL注入是如何工作的,所以我有一个问题 如果我有一个页面,比如viewitems.php,该页面将查询数据库并从表中提取所有数据,并在页面上显示所有数据。既然用户没有任何输入,那么这可以被注入吗?我知道使用数据向下钻取和头变量的页面可以被注入,因为用户可能会弄乱头,但是如果SQL被编码到页面中而不需要任何外部变量,那么它可以被注入吗 我正在重新编码我站点上的所有sql语句,以使用PDO和准备好的语句 太棒了

我正在重新编码我站点上的所有sql语句,以使用PDO和准备好的语句。我尽了最大的努力了解SQL注入是如何工作的,所以我有一个问题

如果我有一个页面,比如viewitems.php,该页面将查询数据库并从表中提取所有数据,并在页面上显示所有数据。既然用户没有任何输入,那么这可以被注入吗?我知道使用数据向下钻取和头变量的页面可以被注入,因为用户可能会弄乱头,但是如果SQL被编码到页面中而不需要任何外部变量,那么它可以被注入吗

我正在重新编码我站点上的所有sql语句,以使用PDO和准备好的语句

太棒了。

既然用户没有任何输入,那么这可以被注入吗?如果SQL被编码到页面中,而不需要任何外部变量,那么它可以被注入吗

如果SQL语句中没有运行时变量,则不存在,该语句不易受SQL注入攻击。在这种情况下,使用事先准备好的陈述仍然没有害处。出于以下几个原因,这样做甚至可能是有益的:

  • 与其他需要使用准备好的语句的代码的一致性(为了安全)
  • 如果/当您在查询中确实需要参数时的未来校对
  • 查询缓存(尽管这取决于特定的数据库和/或驱动程序;请参阅和)
我正在重新编码我站点上的所有sql语句,以使用PDO和准备好的语句

太棒了。

既然用户没有任何输入,那么这可以被注入吗?如果SQL被编码到页面中,而不需要任何外部变量,那么它可以被注入吗

如果SQL语句中没有运行时变量,则不存在,该语句不易受SQL注入攻击。在这种情况下,使用事先准备好的陈述仍然没有害处。出于以下几个原因,这样做甚至可能是有益的:

  • 与其他需要使用准备好的语句的代码的一致性(为了安全)
  • 如果/当您在查询中确实需要参数时的未来校对
  • 查询缓存(尽管这取决于特定的数据库和/或驱动程序;请参阅和)
SELECT语句可以被注入吗


总的来说

但是,如果将SQL编码到没有变量的页面中,那么当然就不可能进行注入,因为没有什么可以注入

但是,如果SQL编码到页面中,并注入了一些变量(尽管是“非外部的”),则二次注入是完全可能的。
这就是为什么准备好的语句如果总是使用,毫无例外,可以发挥任何作用。

SELECT语句可以被注入吗


总的来说

但是,如果将SQL编码到没有变量的页面中,那么当然就不可能进行注入,因为没有什么可以注入

但是,如果SQL编码到页面中,并注入了一些变量(尽管是“非外部的”),则二次注入是完全可能的。

这就是为什么准备好的语句如果总是使用,会有任何好处,没有例外。

好的,很高兴知道,因为确实有很多sql语句,我现在只想做一些重要的语句,这样我就可以安全了,但我会接受你的建议,在我有机会的时候去把它们都准备好,所以很高兴知道,因为确实有很多sql语句,我只想做重要的语句现在就准备好了,这样我就可以安全了,但我会接受你的建议,在有机会的时候去把它们准备好