madmatt/silverstripe-iplists

基于IP地址创建允许和拒绝列表

安装: 928

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 4

分支: 2

开放问题: 2

类型:silverstripe-vendormodule

1.0.0 2020-07-22 11:32 UTC

This package is auto-updated.

Last update: 2024-09-22 20:31:08 UTC


README

此模块为管理员提供了定义IP允许和拒绝列表的功能,俗称为IP白名单和黑名单。

安装

composer require madmatt/silverstripe-iplists
vendor/bin/sake dev/build flush=1

访问/admin/iplists以定义您想要的允许和拒绝列表。

何时不使用此模块

重要的是要说明何时使用此模块不是一个好主意。具体来说,不建议使用此模块来阻止对您的网站进行拒绝服务攻击的IP地址。此模块挂载在Silverstripe CMS上,这意味着在检查IP地址是否允许访问网站之前,必须启动整个CMS和框架(因此网站实际上完成了70%的工作)。阻止这些攻击者的更好方法是使用像Cloudflare这样的Web应用防火墙,并阻止有问题的IP地址访问整个网站。

配置

默认情况下,此模块除了将一个新的中间件添加到每个请求之外,什么都不做。此中间件在CLI上不执行任何操作。为了使此模块有用,您需要配置一个或多个IP列表。每个IP列表可以包含多个URI位置规则,以及允许和拒绝规则,以确定谁可以访问您指定的URI位置规则。

您可以通过两种不同的方式配置列表:在CMS中,以及通过开发者控制的YML文件。

CMS配置

您可以在CMS中管理IP列表。只要您以ADMIN身份登录,您就会看到“IP列表”菜单项,您可以在其中创建IP列表、添加IP地址并按需配置它们。

我们建议为/admin/Security设置IP允许列表(如果您不需要允许公众登录进行任何事情),以确保您的CMS访问受到保护。

YML配置

注意: YML配置尚未实施。目前请使用CMS配置。此配置API可能会更改,请勿信任以下内容。

使用YML配置的目的是,这些IP地址永远不会(或“非常罕见”)更改。例如,在此处添加您的办公VPN的IP地址,但不要添加您的家庭IP地址 - 使用CMS界面来更改它,以便您可以稍后轻松地更改它。

以下YML配置片段将最终允许127.0.0.110.0.0.2登录和查看SilverStripe CMS,并拒绝10.0.0.1查看网站(尽管IP地址在CMS的允许列表中,

Madmatt\IPLists\Model\IPList:
  admin_allowlist:
    routes:
      - /admin
      - /Security
    allow:
      - 127.0.0.1
      - 10.0.0.1
      - 10.0.0.2
  wholesite_deny:
    routes:
      - /
    deny:
      - 10.0.0.1

为什么使用“允许”和“拒绝”而不是“白名单”和“黑名单”?

  1. 允许和拒绝比白和黑更准确。
  2. 允许和拒绝不是种族主义术语。

另请参阅

  1. Dan Williams在Linux内核邮件列表上的补丁
  2. Google开发者文档样式指南
  3. Vince Cabansag - 在技术中创建包容性命名约定
  4. André Staltz在Twitter上的言论
  5. David Heinemeier Hansson & Rails代码库