php网站防挂马,PHP防SQL注入,防挂马、防跨站攻击

SQL注入攻击,是攻击者在表单或地址栏中提交精心构造的sql语句,改动原来的sql语句,如果程序没有对提交的数据经过严格检查,那么就会造成sql注入攻击。

SQL注入因为要操作数据库,所以一般会查找SQL语句关键字:insert、delete、update、select,查看传递的变量参数是否用户可控制,有无做过安全处理。

防止SQL注入攻击的一些函数:

/**

+----------------------------------------------------------

* 防挂马、防跨站攻击、防sql注入函数

+----------------------------------------------------------

*$date 传入的参数,要是个变量或者数组;$ignore_magic_quotes变量的魔术引用

+----------------------------------------------------------

*/

function in($data,$ignore_magic_quotes=false)

{

if(is_string($data))

{

$data=trim(htmlspecialchars($data));//防止被挂马,跨站攻击

if(($ignore_magic_quotes==true)||(!get_magic_quotes_gpc()))

{

$data = mysql_real_escape_string($data);//防止sql注入

}

return $data;

}

else if(is_array($data))//如果是数组采用递归过滤

{

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

{

$data[$key]=in($value);

}

return $data;

}

else

{

return $data;

}

} 再帖个函数,防别人留html和iframe的

function html_in($str)

{

$search = array ("''si", // 去掉 javascript

"']*?>.*?'si", // 去掉iframe

);

$replace = array ("",

"",

);

$str=@preg_replace ($search, $replace, $str);

$str=htmlspecialchars($str);

if(!get_magic_quotes_gpc())

{

$str = addslashes($str);

}

return $str;

} discuz的php防止sql注入函数:

$magic_quotes_gpc = get_magic_quotes_gpc();

@extract(daddslashes($_COOKIE));

@extract(daddslashes($_POST));

@extract(daddslashes($_GET));

if(!$magic_quotes_gpc) {

$_FILES = daddslashes($_FILES);

}

function daddslashes($string, $force = 0) {

if(!$GLOBALS['magic_quotes_gpc'] || $force) {

if(is_array($string)) {

foreach($string as $key => $val) {

$string[$key] = daddslashes($val, $force);

}

} else {

$string = addslashes($string);

}

}

return $string;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值