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 相关文章推荐
3.从实例开始
Oct 09 PHP
PHPCMS的使用小结
Sep 20 PHP
linux iconv方法的使用
Oct 01 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
PHP获取MAC地址的具体实例
Dec 13 PHP
PHP 之 写时复制介绍(Copy On Write)
May 13 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
PHP生成条形码大揭秘
Sep 24 PHP
PHP的PDO操作简单示例
Mar 30 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
Yii框架函数简单用法分析
Sep 09 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中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
js 操作select相关方法函数
2009/12/06 Javascript
Js组件的一些写法
2010/09/10 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
Django如何自定义分页
2018/09/25 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
Python Django 命名空间模式的实现
2019/08/09 Python
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
酒店人事专员岗位职责
2013/12/19 职场文书
医学类个人求职信范文
2014/02/05 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
党员民主评议个人总结
2014/10/20 职场文书
酒店财务经理岗位职责
2015/04/08 职场文书
金砖之国观后感
2015/06/11 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫