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实现WEB动态网页静态
Oct 09 PHP
我的论坛源代码(二)
Oct 09 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
php自定义apk安装包实例
Oct 20 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
php实现递归与无限分类的方法
Feb 16 PHP
PHP四种基本排序算法示例
Apr 09 PHP
PHP多文件上传实例
Jul 09 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
php 实现进制相互转换
Apr 07 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
PHP删除数组中指定下标的元素方法
Feb 03 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的栏目导航程序
2006/10/09 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php反射应用示例
2014/02/25 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
基于jQuery的自动完成插件
2011/02/03 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
初中三好学生事迹材料
2014/01/13 职场文书
公司外出活动方案
2014/08/14 职场文书
防灾减灾日活动总结
2014/08/26 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
五年级学生评语大全
2014/12/26 职场文书
小学优秀学生评语
2014/12/29 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS