• ADADADADAD

    如何防范网站二次循环漏洞[ 建站问答 ]

    建站问答 时间:2024-12-01 19:10:11

    作者:文/会员上传

    简介:

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

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

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

    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;

    }

    ?>

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

    将本文的Word文档下载到电脑

    推荐度:

    下载