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 相关文章推荐
mac下安装nginx和php
Nov 04 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
php实现RSA加密类实例
Mar 26 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
Yii2中如何使用modal弹窗(基本使用)
May 30 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 PHP
laravel框架之数据库查出来的对象实现转化为数组
Oct 23 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
php session劫持和防范的方法
2013/11/12 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
jquery $.getJSON()跨域请求
2011/12/21 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
21行Python代码实现拼写检查器
2016/01/25 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
道路建设实施方案
2014/03/18 职场文书
社会工作专业求职信
2014/07/15 职场文书
就业协议书范本
2014/10/08 职场文书
具结保证书
2015/01/17 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书