是TFDTable.AppendRecord注射安全

时间:2015-10-15 12:23:47

标签: sql delphi dataset sql-injection firedac

procedure AppendRecord(const Values: array of const);TDataSet等中存在方法TFDTable。如果我们深入了解TDataset来源(我没有FireDac来源)。数据由SetFields(Values);Fields[I].AssignValue(Values[I])方法设置。 我想知道在SQL注入方面是否安全传递这样的东西:MyFireDacDS.AppendRecord([..., Edit1.Text, ...])

1 个答案:

答案 0 :(得分:2)

AppendRecord不使用任何Values作为可执行SQL,因此不会比参数化查询更容易受到SQL注入攻击。

SQL注入仅适用于使用未经验证的输入的动态构造的SQL,并且由于AppendRecord不使用此类SQL,因此它不会受到SQL注入的风险。

(当然,您可以尝试将SQL作为Value项之一传递并查看会发生什么来自行测试。)