Security 在不使用nginx.conf的情况下,如何阻止不受信任的IP访问Drupal管理员登录页面?
最近我完成了这个任务,做了很多Rnd。每个人都建议我在nginx中使用location block,比如:Security 在不使用nginx.conf的情况下,如何阻止不受信任的IP访问Drupal管理员登录页面?,security,drupal-7,Security,Drupal 7,最近我完成了这个任务,做了很多Rnd。每个人都建议我在nginx中使用location block,比如: location = /user { include /path/to/trusted-ips.txt; deny all; } 但由于某些nginx重写规则,它不起作用。我已经使用drupal表单钩子实现了另一个解决方案,并与您共享。函数钩子表单变更(&$form,&$form\u state,$form\u id){ function hook_form_alter
location = /user {
include /path/to/trusted-ips.txt;
deny all;
}
但由于某些nginx重写规则,它不起作用。我已经使用drupal表单钩子实现了另一个解决方案,并与您共享。函数钩子表单变更(&$form,&$form\u state,$form\u id){
function hook_form_alter (&$form, &$form_state, $form_id) {
if($form_id == 'user_login') {
$forbidden = "<head><title>403 Forbidden</title></head><body><center><h1>403 Forbidden</h1></center><hr><center>nginx</center></body>";
$allowed_ip_file = '/path/to/trusted-ips.txt';
$allowed_ip_file = fopen($allowed_ip_file, "r") or die("Unable to open file!");
$allowd_ip_arr = array();
while(! feof($allowed_ip_file)) {
$line = fgets($allowed_ip_file);
if (preg_match('/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/', $line, $ip_match)) {
$allowd_ip_arr[] = $ip_match[0];
}
}
fclose($allowed_ip_file);
if(!in_array($_SERVER['REMOTE_ADDR'], $allowd_ip_arr)) {
http_response_code(403);
echo $forbidden; exit();
}
}
}
如果($form\u id=='user\u login'){
$probled=“403禁止403禁止
nginx”;
$allowed_ip_file='/path/to/trusted ips.txt';
$allowed_ip_file=fopen($allowed_ip_file,“r”)或die(“无法打开文件!”);
$allowd_ip_arr=array();
而(!feof($allowed_ip_file)){
$line=fgets($allowed\u ip\u file);
if(preg_match('/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/',$line,$ip_match)){
$allowd_ip_arr[]=$ip_match[0];
}
}
fclose($allowed\u ip\u file);
if(!in_数组($_服务器['REMOTE_ADDR'],$allowd_ip_arr)){
http_响应_代码(403);
echo$禁止;退出();
}
}
}
尝试使用
此模块允许管理员将对站点的访问限制为管理员定义的一组IP地址