如何通过IP阻止访问一组url模式?

时间:2016-03-31 21:54:47

标签: apache .htaccess nginx silverstripe

我一直试图阻止访问/admin/admin/{anything},而/ admin不是silverstripe中的物理子目录,除了一组有限的IP地址并提出以下内容。 htaccess文件部分,大部分工作。

<IfModule mod_rewrite.c>
  SetEnv HTTP_MOD_REWRITE On
  RewriteEngine On
  RewriteBase '/'

  RewriteCond %{REQUEST_URI} ^(.*)?(admin/(.*)|admin)$
  RewriteCond %{REMOTE_ADDR} !^(127\.0\.0\.1|216\.58\.208\.36)$
  RewriteRule ^(.*)$ - [R=403,L]

</IfModule>

但有人向我指出,这不会阻止未经重写的访问framework/main.php?url=adminframework/main.php?url=admin/{anything}

除此之外,还可以通过不支持.htaccess的Nginx提供Silverstripe。

如何更新此.htaccess部分以阻止非重写版本,以及如何在nginx中执行相同的操作?

1 个答案:

答案 0 :(得分:2)

Hailwood,有几个模块可以触及这一点。可能是一个很好的起点:

https://github.com/silverstripe-labs/silverstripe-securityextras

https://github.com/prij/silverstripe-iprestrictedpage