防止SQL注入

我需要保护SQL注入的应用程序。 应用程序正在使用ADO连接到Oracle,并搜索用户名和密码以进行身份​​验证。

从我读到现在,最好的方法是使用参数,而不是将整个SQL分配为字符串。 像这样的东西:

query.SQL.Text := 'select * from table_name where name=:Name and id=:ID'; 
query.Prepare; 
query.ParamByName( 'Name' ).AsString := name; 
query.ParamByName( 'ID' ).AsInteger := id; 
query.Open;

另外,我正在考虑验证来自用户的输入,并删除SQL关键字,如删除,插入,选择等...任何不同于正常ASCII字母和数字的输入字符都将被删除。

这会保证我的安全级别最低?

我不想使用除Delphi 7标准和Jedi之外的任何其他组件。




这会保证我的安全级别最低?

是的参数化查询应该可以保护您免受SQL注入的攻击,这将很容易测试。 只需在name变量中输入一些危险的字符串,看看会发生什么。 通常你应该返回0行而不是错误。

链接地址: http://www.djcxy.com/p/93687.html

上一篇: prevent against SQL injection

下一篇: php