Binding PHP:为什么绑定变量会减少SQL注入?

Binding PHP:为什么绑定变量会减少SQL注入?,binding,Binding,我知道绑定减少了SQL注入,但为什么呢?绑定将正确、平台正确转义的责任转移到绑定API实现上。因此,程序员再也不能忘记或搞砸它,从而导致不可预见和不必要的注入问题 为了一个良好的阅读检查。它解释了addslashes()在PHP中的问题,以及依赖程序员主动转义的后果。因此绑定基本上为您清理了输入?是和否。卫生通常指根据不需要的数据验证输入的过程。绑定隐式地将责任转移到您正在使用的API。这意味着,如果MySQL或您使用的任何DBMS明天在其语法中更改了某些内容,您都不在乎——API将更改为使用新

我知道绑定减少了SQL注入,但为什么呢?

绑定将正确、平台正确转义的责任转移到绑定API实现上。因此,程序员再也不能忘记或搞砸它,从而导致不可预见和不必要的注入问题


为了一个良好的阅读检查。它解释了addslashes()在PHP中的问题,以及依赖程序员主动转义的后果。

因此绑定基本上为您清理了输入?是和否。卫生通常指根据不需要的数据验证输入的过程。绑定隐式地将责任转移到您正在使用的API。这意味着,如果MySQL或您使用的任何DBMS明天在其语法中更改了某些内容,您都不在乎——API将更改为使用新的转义策略,您的代码将永远安全。此外,如何为绑定值编制索引?例如,假设在更高级的API(如.NET)中有:oci_parse($handler,“SELECT*FROM table where something=:bv_name['index']),绑定API还可以进行一些卫生处理,如类型和需求检查。不过,它并不需要“基本”的绑定功能。这完全取决于您选择的平台,在这个问题上并不重要。