将 Drupal 的登录限制到特定的 IP 块

将 Drupal 的登录限制到特定的 IP 块

我想允许任何地方的匿名用户,同时将身份验证限制在一个或几个 IP 块内。

这可以在 drupal 6 中完成吗?

答案1

在控制面板中检查“访问规则”:admin/user/rules

添加规则并选择“主机”,您可以允许或拒绝指定 IP 地址的访问(通常允许您的范围然后拒绝其他所有内容,这里没有隐式拒绝。)不幸的是,这是一个“全局选项”(不是基于用户或组的)所以小心行事,您可能会将自己拒之门外。

答案2

这绝对是一种黑客行为,但您可以在登录模块/脚本中添加类似以下内容(或将其包含在内),从而阻止那些不在 IP 范围内的人访问登录模块:

<?php

$allowed_ips = array('1.2.3.4','5.6.7.8');
$client_ip = $_SERVER['REMOTE_ADDR'];

if(!in_array($client_ip,$allowed_ips)) {
    die('authentication denied'); // or you could redirect to a 403 or whatever
}

答案3

看起来有一个功能请求正在等待处理,但是开发人员已经整理了一些可能有用的代码:支持基于角色的 IP 限制

相关内容