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

 更新时间:2014年06月27日 15:47:15   投稿:shichen2014  
这篇文章主要介绍了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的链接(比如在发贴时加入超链),再点击,这个Check就完全不起作用了。

目前觉得还是用POST的方法传递重要数据比较可靠。
可以在form中插入一些隐藏的text用于传递数据。
或者使用下面的方法,利用Ajax从客户端向服务器提交数据。

/*创建XHR对象*/
function createXHR()
{
  if (window.XMLHttpRequest){
    var oHttp = new XMLHttpRequest();
    return oHttp;
  } 
  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);
}

相关文章

  • PHP中文乱码解决方案

    PHP中文乱码解决方案

    PHP+MYSQL做网站开发通常都会碰到浏览器输出中文字符时乱码,这个问题的原因主要是因为HTML内容编码,PHP文件编码和MySQL数据库编码这三者不一致造成的。今天我们来具体探讨下出现中文乱码后的解决方案。
    2015-03-03
  • php模拟socket一次连接,多次发送数据的实现代码

    php模拟socket一次连接,多次发送数据的实现代码

    php模拟socket一次连接,多次发送数据的实现代码,需要的朋友可以参考下。
    2011-07-07
  • 修改php.ini以达到屏蔽错误信息并记录日志

    修改php.ini以达到屏蔽错误信息并记录日志

    这篇文章主要介绍了通过修改php.ini文件来实现如果关闭与开启错去信息,并给出了比较好的方法,既能看到错误信息也防止信息泄露问题
    2013-06-06
  • PHP二分查找算法的实现方法示例

    PHP二分查找算法的实现方法示例

    这篇文章主要介绍了PHP二分查找算法的实现方法,简单分析了二分查找算法的原理,并结合具体实例形式给出了php基于循环与递归两种方法实现二分查找的相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • php商品对比功能代码分享

    php商品对比功能代码分享

    前段时间,朋友叫我帮他写个商品对比功能,当时正好在逛绿森数码商城,点开商品列表,看到有商品对比功能,然后直接下载了他的JS滚动文件和抽出了对比框的样式,然后自己完善了下。
    2015-09-09
  • PHP伪静态写法附代码

    PHP伪静态写法附代码

    PHP伪静态写法 伪静态又名:URL重写 主要是为了SEO而生的。(SEO是什么?这个不用问我吧。呵呵~搞网络的不懂SEO那就~~~~)
    2008-06-06
  • php下Memcached入门实例解析

    php下Memcached入门实例解析

    这篇文章主要介绍了php下Memcached入门实例,较为详细的分析了memcached的概念与用法,是非常实用的技巧,需要的朋友可以参考下
    2015-01-01
  • 迅速确定php多维数组的深度的方法

    迅速确定php多维数组的深度的方法

    如何快速的确定一个数组深度,下面有个不错的方法可以迅速确定php多维数组的深度,感兴趣的朋友可以参考下
    2014-01-01
  • php数据类型判断函数有哪些

    php数据类型判断函数有哪些

    php数据类型判断时需要注意的是is_numeric() 检测变量是否为数字或数字字符串有别 is_integer()
    2013-09-09
  • php 在线打包_支持子目录

    php 在线打包_支持子目录

    用php实现的在线打包的工具,并可以支持子目录使用纯php对目录和文件进行打包压缩,压缩当然不能跟winrar比(压缩比差不多相当于winrar压缩时的最快模式)。
    2008-06-06

最新评论