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与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
解析php中call_user_func_array的作用
Jun 07 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
Feb 01 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
PHP的mysqli_sqlstate()函数讲解
Jan 23 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
初探PHP5
2006/10/09 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
PHP7内核之Reference详解
2019/03/14 PHP
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
Python排序算法之选择排序定义与用法示例
2018/04/29 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
Django框架验证码用法实例分析
2019/05/10 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
python excel和yaml文件的读取封装
2021/01/12 Python
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
酒店总经理岗位职责
2014/03/17 职场文书
学校师德承诺书
2014/05/23 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
被告答辩状范文
2015/05/22 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书