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


Posted in PHP onAugust 24, 2014

针对伪造的数据从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的超链接(3water.com)比如在发贴时加入超链,再点击,这个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 mkdir()定义和用法
Jan 14 PHP
php下使用SimpleXML 处理XML 文件
Feb 27 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
Apr 20 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
php中JSON的使用方法
Apr 30 PHP
6个超实用的PHP代码片段
Aug 10 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
PHP屏蔽关键字实现方法
Nov 17 PHP
详解提高使用Java反射的效率方法
Apr 29 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
phpStorm2020 注册码
Sep 17 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 #PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 #PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
Aug 23 #PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 #PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 #PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 #PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 #PHP
You might like
聊天室php&amp;mysql(三)
2006/10/09 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
浅谈node的事件机制
2017/10/09 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
使用python3实现操作串口详解
2019/01/01 Python
python 为什么说eval要慎用
2019/03/26 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python如何统计代码运行的时长
2019/07/24 Python
Python遍历字典方式就实例详解
2019/12/28 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
《中国的气候》教学反思
2014/02/23 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
社区母亲节活动总结
2015/02/10 职场文书
详解Redis瘦身指南
2021/05/26 Redis
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
springboot用户数据修改的详细实现
2022/04/06 Java/Android