如何将文件夹/位置的直接访问限制为特定的IP地址

时间:2012-12-27 05:31:49

标签: .htaccess protection restrictions ip-restrictions

0。 这个网站对我来说就像毒品一样。 我希望有人可以指导我完成这项任务。

我需要一个脚本/解决方法,以限制对特定文件夹或文件的直接文件访问,并且只允许通过预授权的IP地址访问它。

我想要实现的是一个文件可以通过我的网站上的iframe访问,只能访问我们的网站,但阻止访问者直接访问它的任何其他尝试。基于IP的限制(将我的网站的IP地址添加到允许的访问者池中并阻止其他人)。

www.mysite.com/public/ 通过iframe www.mysite.com/private/FILEA.html

打开

但是www.mysite.com/private/FILEA.html它无法直接访问

这甚至可能吗? 我一直在寻找S.O几天试图寻找解决方案。

如果有人能想出解决方案,我会永远感激。

非常感谢你们!

1 个答案:

答案 0 :(得分:0)

  

这甚至可能吗?我一直在寻找S.O几天试图寻找解决方案。

不是你在想什么。您不能通过IP进行限制,因为当您将www.mysite.com/private/FILEA.html的内容放入iframe时,客户端的浏览器仍会加载,因此访问它的远程IP仍然是 客户的IP。您不能通过IP拒绝/授予访问权限。

你能做什么,是由参考者阻止访问。您可以确保引用者为www.mysite.com/public/,并且只有在请求具有该引用时才加载FILEA.html文件。但是,人们可以欺骗引用并绕过它,因此如果它们是持久的,仍然可以直接访问该文件。您可以通过文档根目录中的htaccess文件中的一些重写规则来执行此操作:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !www.mysite.com/public/ [NC]
RewriteRule ^/?private/FILEA.html$ - [L,F]

这意味着如果引用不包含 www.mysite.com/public,并且请求是/private/FILEA.html,则返回403禁止。

当有人访问/public/并通过php脚本(或其他一些脚本)路由所有FILEA.html请求时,会发出一些更复杂的问题,即验证会话cookie是否有效提供私人档案。