mysql安全 防注入的sql语句写法[网站编程]
本文“mysql安全 防注入的sql语句写法[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
常常据说sql注入式攻击,其实不是mysql独有的,全部的数据库都存在注入式攻击,包含mssql,oracle,db2等.
毕竟是什么sql注入式攻击呢?
其实,它就是攻击者通过构建特别的sql语句,举行数据库攻击,实际就是获得一些信息,或是改正一些数据,以到达攻击者目的.
避免攻击除了我们上次说的php安全之数据过滤之外,当然就是我们sql语句的写法了.
比方一个登录语句:
select * from user where username='$admin' and pwd='$admin'
普通我们都是这么写的是吧!
若是登录者提交过来的数据使我们的sql语句变成了以下情势:
select * from user where username='aa' #and pwd='$admin';
select * from user where username='aa' /*and pwd='$admin';
假如用户名对了,那是不是也能实现登录呢?
又如:select * from user where username='aa' or 0=0 /*and pwd='$admin';
就算用户名不对,也可以登录了.
但假如我们将我们的语句改成:
select * from user where username='$admin' ;
然后从数据库读出的密码同,用户提交过来的密码比对,能否越发安全一点点呢?
再加上我们的过滤函数safestr()
function safestr()
{
$re = "/(|'%27|;|(%3d)|(|(%28)|)|(%29)|(/*)|(%2f%2a)|(%2a%2f)|+|(%2b)|(<|(%3e)|(%3e)|(--))|[|%5d)/";
if( preg_match( $re ,$username)
{
echo'请不要不法sql注入';
exit;
}
else
{
return turn;
}
这也安全也都只是相对安全些,假如相对安全些,那么我们定的程序就更简单攻破一些对吧!
以上是“mysql安全 防注入的sql语句写法[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |