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 xml-rpc远程调用
Dec 19 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
thinkPHP导出csv文件及用表格输出excel的方法
Dec 30 PHP
Yii CGridView用法实例详解
Jul 12 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 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中array_merge和array相加的区别分析
2013/06/17 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
thinkPHP查询方式小结
2016/01/09 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
Js apply方法详解
2017/02/16 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
使用python实现tcp自动重连
2017/07/02 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
教你打造完美的创业计划书
2014/01/06 职场文书
淘宝客服自我总结鉴定
2014/01/25 职场文书
测量工程专业求职信
2014/02/24 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
安全保证书范文
2014/04/29 职场文书
行政监察建议书
2014/05/19 职场文书
篮球比赛口号
2014/06/10 职场文书
师德师风个人总结
2015/02/06 职场文书
先进个人自荐书
2015/03/06 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers