防止sql注入
有没有办法通过使用存储过程来阻止SQL注入?
我有一个SQL查询
select column name from table where field ='@value' cmd.parameters.add('@value', value);
我正在使用具有最少权限的参数化查询。 我如何编写一个基本的存储过程来防止SQL注入。 那可能吗?
从表中选择列名称,其中field = @value
cmd.parameters.add('@ value',value);
SQL参数避免了sql注入问题。
您只需要使用参数更改= condition。 检查以上查询。
据我所知,单独使用参数化查询应该已经阻止了sql注入攻击。
如果使用参数化查询,则不应该在@value( @value
而不是'@value'
)周围使用引号,前提是@value参数定义为字符串。
创建存储过程的方式与此类似。 @value将被定义为VARCHAR或其他东西,因此只接受字符串。 然后在存储过程中引用@value
而不是'@value'
。
CREATE PROCEDURE my_proc (IN @value VARCHAR(32)) BEGIN SELECT column name FROM table WHERE field = @value END
C#
cmd.parameters.Add("?value", value);
已弃用
更新@Yogesh Bhadauirya说,
上述就是C#学习教程:防止sql注入分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
cmd.Parameters.AddWithValue("?value", value);
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1012691.html