TFDTable.AppendRecord 注入安全
Is TFDTable.AppendRecord Injection-Safe
有一个方法procedure AppendRecord(const Values: array of const);
存在于TDataSet
、TFDTable
等。如果我们深入TDataset
源(我没有FireDac源).数据由 SetFields(Values);
和 Fields[I].AssignValue(Values[I])
方法设置。
我想知道在 SQL 注入方面传递这样的东西是否安全:MyFireDacDS.AppendRecord([..., Edit1.Text, ...])
?
AppendRecord
不使用任何 Values
作为可执行文件 SQL,因此不会比参数化查询更容易受到 SQL 注入的影响。
SQL 注入仅适用于使用未经验证的输入动态构造的 SQL,并且由于 AppendRecord 不使用此类 SQL,因此不受 SQL 风险的影响注射。
(当然,您可以通过尝试将 SQL 作为 Value
项之一传递并查看会发生什么来自己测试。)
有一个方法procedure AppendRecord(const Values: array of const);
存在于TDataSet
、TFDTable
等。如果我们深入TDataset
源(我没有FireDac源).数据由 SetFields(Values);
和 Fields[I].AssignValue(Values[I])
方法设置。
我想知道在 SQL 注入方面传递这样的东西是否安全:MyFireDacDS.AppendRecord([..., Edit1.Text, ...])
?
AppendRecord
不使用任何 Values
作为可执行文件 SQL,因此不会比参数化查询更容易受到 SQL 注入的影响。
SQL 注入仅适用于使用未经验证的输入动态构造的 SQL,并且由于 AppendRecord 不使用此类 SQL,因此不受 SQL 风险的影响注射。
(当然,您可以通过尝试将 SQL 作为 Value
项之一传递并查看会发生什么来自己测试。)