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程序中的常见漏洞进行攻击(上)
Oct 09 PHP
PHP用户指南-cookies部分
Oct 09 PHP
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 PHP
PHP聊天室简单实现方法详解
Dec 08 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
Mar 21 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
WordPress免插件实现面包屑导航的示例代码
Aug 20 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 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
Linux中为php配置伪静态
2014/12/17 PHP
php统计数组元素个数的方法
2015/07/02 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
php实现小程序支付完整版
2018/10/09 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
Vue多选列表组件深入详解
2021/03/02 Vue.js
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
web页面录屏实现
2019/02/12 HTML / CSS
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
运动会广播稿200米
2014/01/27 职场文书
《我不是最弱小的》教学反思
2014/02/23 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
赤壁观后感(2)
2015/06/15 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python