php mysql防注入字符串过滤_php 过滤特殊字符及sql防注入代码

本文介绍了三种防止SQL注入的PHP方法。方法一使用addslashes()函数对SQL语句进行转义;方法二通过strip_tags()去除HTML标签;方法三提供了一个正则表达式过滤可能的恶意代码。此外,还展示了一个名为sqlin的类,该类包含了对GET和POST数据的预处理,以替换SQL关键字为空,防止注入攻击。请注意,在特定场景下,如留言本,需要调整关键字替换规则以确保正常功能。
摘要由CSDN通过智能技术生成

//方法一

//过滤',",sql语名

addslashes();

//方法二,去除所有html标签

strip_tags();

//方法三过滤可能产生代码

function php_sava($str)

{

$farr = array(

"/s /",

"/]*?)>/isU",

"/(]*)on[a-zA-Z] s*=([^>]*>)/isU",

);

$tarr = array(

" ",

"<\1\2\3>", //如果要直接清除不安全的标签,这里可以留空

"\1\2",

);

$str = preg_replace( $farr,$tarr,$str);

return $str;

}

//php sql防注入代码

class sqlin

{

//dowith_sql($value)

function dowith_sql($str)

{

$str = str_replace("and","",$str);

$str = str_replace("execute","",$str);

$str = str_replace("update","",$str);

$str = str_replace("count","",$str);

$str = str_replace("chr","",$str);

$str = str_replace("mid","",$str);

$str = str_replace("master","",$str);

$str = str_replace("truncate","",$str);

$str = str_replace("char","",$str);

$str = str_replace("declare","",$str);

$str = str_replace("select","",$str);

$str = str_replace("create","",$str);

$str = str_replace("delete","",$str);

$str = str_replace("insert","",$str);

$str = str_replace("'","",$str);

$str = str_replace(""","",$str);

$str = str_replace(" ","",$str);

$str = str_replace("or","",$str);

$str = str_replace("=","",$str);

$str = str_replace(" ","",$str);

//echo $str;

return $str;

}

//aticle()防SQL注入函数//php教程

function sqlin()

{

foreach ($_GET as $key=>$value)

{

$_GET[$key]=$this->dowith_sql($value);

}

foreach ($_POST as $key=>$value)

{

$_POST[$key]=$this->dowith_sql($value);

}

}

}

$dbsql=new sqlin();

?>

===================================================================================

使用方式:

将以上代码复制新建一个sqlin.php的文件,然后包含在有GET或者POST数据接收的页面

原理:

将所有的SQL关键字替换为空

本代码在留言本中不能使用,若要在留言本中使用请替换其中的

.......

$str = str_replace("and","",$str);

$str = str_replace(" ","",$str);

...

的代码为:

$str = str_replace("and","and",$str);

$str = str_replace("execute","execute",$str);

$str = str_replace("update","update",$str);

$str = str_replace("count","count",$str);

$str = str_replace("chr","chr",$str);

$str = str_replace("mid","mid",$str);

$str = str_replace("master","master",$str);

$str = str_replace("truncate","truncate",$str);

$str = str_replace("char","char",$str);

$str = str_replace("declare","declare",$str);

$str = str_replace("select","select",$str);

$str = str_replace("create","create",$str);

$str = str_replace("delete","delete",$str);

$str = str_replace("insert","insert",$str);

$str = str_replace("'","'",$str);

$str = str_replace(""",""",$str);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值