PHP $ _GET with value =“http://abc.com”导致权限被拒绝

时间:2012-11-21 10:55:46

标签: php

  

可能重复:
  403 Forbidden Error While Sending GET Data

当$ _GET变量包含值“http://abc.com”时,页面返回“Forbidden。您无权访问此服务器上的/get.php。”

您可以在http://softwareholic.com/get.php处尝试(使用var_dump($ _ GET)输出;)

没关系

softwareholic.com/get.php?link=123 //output: array(1) { ["link"]=> string(3) "123" } 
softwareholic.com/get.php?link=http:// //output: array(1) { ["link"]=> string(7) "http://" }

这些将失败

softwareholic.com/get.php?link=http://google.com  
softwareholic.com/get.php?link=http%3A%2F%2Fgoogle.com  

事情是他们在我的localhost和downtownhost.com上工作。该问题仅出现在hostgator.com上。我也删除了.htaccess以缩小范围。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您的主机正在强制执行403作为安全措施,可能是为了防止Open Redirect个漏洞。

您真的需要由用户重定向到任何给定的网址吗?如何在数据库表中存储可能的URL,并在查询字符串中传入ID,然后查找和重定向。