• 技术文章 >php教程 >php手册

    php防止伪造数据从URL提交解决方法

    2016-06-13 09:32:57原创775
    php防止伪造的数据从URL提交方法。

    针对伪造的数据从URL提交的情况,首先是一个检查前一页来源的如下代码:

    /*PHP防止站外提交数据的方法*/
    function CheckURL(){
    $servername=$_SERVER['SERVER_NAME']; 
    $sub_from=$_SERVER["HTTP_REFERER"]; 
    $sub_len=strlen($servername); 
    $checkfrom=substr($sub_from,7,$sub_len); 
    if($checkfrom!=$servername)die("警告!你正在从外部提交数据!请立即终止!"); 
    }
    ?>

    这个方法只能防止手动在浏览栏上输入的URL。

    事实上只要在服务器上构造出一个指向该URL的超链接(www.jbxue.com)比如在发贴时加入超链,再点击,这个Check就完全不起作用了。
    目前觉得还是用POST的方法传递重要数据比较可靠。
    可以在form中插入一些隐藏的text用于传递数据。
    或者使用下面的方法,利用Ajax从客户端向服务器提交数据。

    /*创建XHR对象*/
    function createXHR()
    {
    if (window.XMLHttpRequest){
    var oHttp = new XMLHttpRequest();
    return oHttp;
    } // www.jbxue.com
    else if (window.ActiveXObject){
    var versions = ["MSXML2.XmlHttp.6.0","MSXML2.XmlHttp.3.0"];
    for (var i = 0; i < versions.length; i++){
    try {
    var oHttp = new ActiveXObject(versions[i]);
    return oHttp;
    } catch (error) {}
    }
    }
    throw new Error("你的浏览器不支持AJAX!");
    }
    /*用AJAX向page页面传递数据*/
    function ajaxPost(url,query_string='')
    {
    var xhr;
    xhr = createXHR();
    xhr.open('POST',url,false);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=gb2312");
    xhr.onreadystatechange = function(){if (xhr.readyState == 4)if (xhr.status != 200)return;}
    xhr.send(query_string);
    }
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:PHP实例教程
    上一篇:PHP查询登录中的sql注入 下一篇:2014 年10个最佳的PHP图像操作库--留着有用
    千万级数据并发解决方案

    相关文章推荐

    • 经验分享:PHP入门的学习方法• php WEB上创建网站• php mysql 数据库类• php的变量、函数、对象的引用• 学习PHP重定向的三种方法
    1/1

    PHP中文网