防止sql注入之美

2021/6/17 19:30:08

本文主要是介绍防止sql注入之美,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

所谓sql注入,就是通过输入请求,把sql命令插入到sql语句中,以达到欺骗服务器执行恶意sql命令的目的。假设服务端要获取玩家数据,可能使用如下的sql语句。

string sql="select *from player where id="+id;

正常情况下该语句能够完成读取数据的工作。但如果一名恶意玩家注册了类似"haomei";delete *from player;"的名字,这条sql语句将变成下面两条语句。

select *from player where id = haomei;delete *from player;

执行这样的sql语句后,player表里面的数据都被删除了,后果不堪设想。如果把含有分号,逗号等特殊字符的字符串判断为不安全字符串,在拼装sql语句前,对用户输入的字符串进行安全性检查,就可以有效防止sql注入。使用正则表达式编写判定安全字符串的方法IsSafeStr,它将把含有 “ -;,\/()[]}{%@*!' ”这些特殊符号的字符串判定为不安全字符串,代码如下:

//判定不安全字符串
public bool IsSafeStr(string str)
{
   return !Regex.IsMatch(str,@"[-|;|,|\/|\(|\)|\[|\]|\{|%|@|\*|!|']");
}

 



这篇关于防止sql注入之美的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程