madmatt / silverstripe-iplists
基于IP地址创建允许和拒绝列表
Requires
Requires (Dev)
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^3.0
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.1
和10.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
为什么使用“允许”和“拒绝”而不是“白名单”和“黑名单”?
- 允许和拒绝比白和黑更准确。
- 允许和拒绝不是种族主义术语。
另请参阅