云服务器网:购买云服务器和VPS必上的网站!

漏洞:如何防范网站二次循环漏洞

如何防范网站二次循环漏洞防范网站二次循环漏洞的示例:PHP对MySQL的操作简单产生二次漏洞的防范方案,用str_replace()函数顺次对必要的特殊字符进行替换,代码以下:<?php/**二次漏洞简单检测*//**链接数据库(根据情况自己修改)*/$Hos

如何防范网站二次循环漏洞

防范网站二次循环漏洞的示例:

PHP对MySQL的操作简单产生二次漏洞的防范方案,用str_replace()函数顺次对必要的特殊字符进行替换,代码以下:

<?php

/*

*二次漏洞简单检测

*/

/*

*链接数据库(根据情况自己修改)

*/

$Host='localhost';

$User='root';

$Pass='password';

$DB='test';//测试库名

$db=@mysql_connect($Host,$User,$Pass);

if(!$db)die("连接服务器MySQL出错!");

elseif(!mysql_select_db($DB,$db))die("连接数据库出错!");

define(INPUT_MAX_LENGTH,10);//前台maxlength值(初步检测)

define(INDB_MAX_LENGTH,20);//数据库中字段设置的大小值(用于写入前的必要安全测试)

/*

*原始数据(如用户输入等)

*/

$string="’//";//用户输入内容

if(strlen($string)>INPUT_MAX_LENGTH)//初步检测

die("输入内容超长");

echo"输入的内容:".$string;

/*

*过滤方案

*/

//$string_in1=AddSlashes($string);//方案一:临时失去危险,但有二次漏洞

$string_in1=str_slashes($string);//方案二:永久性失去危险!(自定义函数)

/*

*安全测试

*/

$string_in2=test_db($string_in1,1);//一次漏洞检测

$string_in3=test_db($string_in2,2);//二次漏洞检测

/*

*数据库操作(函数)

*/

functiontest_db($str_in,$time)

{

echo"第$time次要写入的内容:".$str_in;

if(strlen($str_in)>INDB_MAX_LENGTH)die("第$time次写入数据超长!");//必要安全测试!

$result=mysql_query("INSERTINTOstr(str)VALUES('$str_in')");//写入

if(!$result)

{

die("<fontcolor=red>第$time次写入数据库失败</font>");

}

echo"第$time次写入终了";

$result=mysql_query("SELECTstrFROMstrORDERBYidDESCLIMIT1");//取出

if($item=mysql_fetch_array($result))

{

$str_out=$item['str'];

}

echo"第$time次输出:".$str_out."";

return$str_out;

}

/*

*永久性过滤危险字符

*/

functionstr_slashes($str)

{

$str=str_replace("'","'",$str);//转译'

$str=str_replace("//","/",$str);//转译/

return$str;

}

?>

本文来源:https://www.yuntue.com/post/60955.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注