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 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 PHP
浅谈php serialize()与unserialize()的用法
Jun 05 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
java解析json方法总结
May 16 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 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检测移动设备类mobile detection使用实例
2014/04/14 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
php实现统计网站在线人数的方法
2015/05/12 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
原生js实现焦点轮播图效果
2017/01/12 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
Python 文件和输入输出小结
2013/10/09 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
python基于event实现线程间通信控制
2020/01/13 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
python实现计算图形面积
2021/02/22 Python
Ejb技术面试题
2015/04/29 面试题
建筑专业毕业生推荐信
2013/11/21 职场文书
宿舍违规检讨书
2014/01/12 职场文书
满月酒主持词
2014/03/27 职场文书
会员卡清退活动总结
2014/08/27 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
Python竟然能剪辑视频
2021/05/25 Python
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫