Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29307602
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类:

2009-09-18 09:54:12

#isset($_SERVER['HTTP_REFERER']) or exit('不可直接在URL中输入此地址');
#preg_match("/".$_SERVER['HTTP_HOST']."/i", $_SERVER['HTTP_REFERER']) or exit('不可直接在URL中输入此地址');

能够阻止用户直接输入URL地址。
但是如果这段代码是放在服务器端。然后客户端进行AJAX请求的话就有危险了

因为客户端的http_referer是来自另外的地方导致数据过不来!

比较好的解决方法是:
function stop_outside_post(){
  $ServerName = @$_SERVER['SERVER_NAME'];
  $Sub_from = @$_SERVER["HTTP_REFERER"];
  $Sub_len = strlen($ServerName);
  $Checkfrom = substr($Sub_from,7,$Sub_len);
  if($Checkfrom!= $ServerName) {
      die("警告!你正在从外部提交数据或直接访问文件!请立即终止!!");   
  }
直接杀掉从外部直接提交过来的数据!
阅读(1127) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~