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为php增加openssl模块的方法
Jun 14 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
php引用传值实例详解学习
Nov 06 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
php安装ssh2扩展的方法【Linux平台】
Jul 20 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 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
10条php编程小技巧
2015/07/07 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
基于Python实现简单学生管理系统
2020/07/24 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
元旦晚会感言
2014/03/12 职场文书
学生个人自我鉴定
2014/03/26 职场文书
读书之星事迹材料
2014/05/12 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
自荐信范文
2019/05/20 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS