一、最常用的方法(代码中限制)

1、如何限制IP

function get_new_ip(){

if(getenv('HTTP_CLIENT_IP')) {

$onlineip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR')) {

$onlineip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR')) {

$onlineip = getenv('REMOTE_ADDR');

} else {

$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];

}

return $onlineip;

}

$onlineip = get_new_ip();

$wip = ['127.0.0.1'];

if(!in_array($onlineip, $wip)){

header("HTTP/1.1 404 Not Found");

header("Status: 404 Not Found");

exit;

}

2、进行密码验证

/ Password protect

define('ADMIN_USERNAME','test'); // Admin Username

define('ADMIN_PASSWORD','test'); // Admin Password

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||

$_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME || $_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD) {

Header("WWW-Authenticate: Basic realm=\"discuz Login\"");

Header("HTTP/1.0 401 Unauthorized");

echo <<

Rejected!

Wrong Username or Password!

EOB;

exit;

}

// END OF DEFAULT CONFIG AREA /

二、NGINX中限制

1、IP限制

location / {

deny 192.168.1.1;

allow 192.168.1.0/24;

allow 10.1.1.0/16;

allow 2001:0db8::/32;

deny all;

}

2、auth_basic 本机认证(nginx默认支持)

安装密码工具

yum -y install httpd-tools

生成密码

htpasswd -c pass.db

nginx中配置(需要维护 pass.db 文件)

auth_basic "User Authentication";

auth_basic_user_file conf/pass.db;

3、ngx_http_auth_request_module 第三方认证

需要安装:--with-http_auth_request_module 模块

#auth_basic "User Authentication";

#auth_basic_user_file conf/pass.db;

auth_request /auth;

location = /auth {

proxy_pass ...

proxy_pass_request_body off;

proxy_set_header Content-Length "";

proxy_set_header X-Original-URI $request_uri;

}

/ Password protect

define('ADMIN_USERNAME','test'); // Admin Username

define('ADMIN_PASSWORD','test'); // Admin Password

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||

$_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME || $_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD) {

Header("WWW-Authenticate: Basic realm=\"discuz Login\"");

Header("HTTP/1.0 401 Unauthorized");

echo <<

Rejected!

Wrong Username or Password!

EOB;

exit;

}

// END OF DEFAULT CONFIG AREA /

4、 ngx_http_auth_jwt_module 第三方认证

location / {

auth_jwt "closed site";

auth_jwt_key_file conf/keys.json;

auth_jwt_claim_set $email info e-mail;

auth_jwt_claim_set $job info "job title";

}

加密算法原理同上

配置代码:

location ~ /admin/.*php$ {

location = /admin.php {

allow 127.0.0.1;

deny all;

auth_basic "Authorized users only";

auth_basic_user_file authkey/auth.com.db;

fastcgi_pass common;

fastcgi_index index.php;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

authinfo.php,【nginxphp】后台权限认证方式相关推荐

  1. 比RBAC更好的权限认证方式(Auth类认证)

    Auth 类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程, 很少人知道它, 它其实比RBAC更方便 . RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了, ...

  2. Java权限管理|基于springBoot+springSecurity+jwt实现前后端分离用户权限认证

    基于springBoot+springSecurity+jwt实现前后端分离用户权限认证 1. 项目说明   主要基于前后端分离情况下用户权限认证, 当用户登录认证成功后,每个用户会获取到自己的tok ...

  3. Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)

    db_修改过(用户 角色 权限): 1.新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错: 2.删除用户时候,若该用户创建过其他用户(不能改此用户名. ...

  4. k8s-身份认证与权限 认证鉴权准入控制- 各种方式带例子-推荐-2023

    # 认证 鉴权 准入控制 ACL 了解 原文:k8s认证.授权与准入控制 - 哪都通临时工 - 博客园 (cnblogs.com) 认证(Authentication):API Server 可以支持 ...

  5. php auth和rbac区别,php中比rbac更好的权限认证的方式auth类认证

    RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了,比如页面上面的操作按钮, 我想判断用户权限来显示这个按钮, 如果没有权限就不会显示这个按钮: 再比如我想按积分进行权限认证, 积分在 ...

  6. thinkphp mysql权限管理_TP thinkphp 权限管理 权限认证 功能

    目前,在tp框架中做权限管理 分rbac(老)与auth(推荐)认证方式: 老的tp版本中封装的是rbac认证: 新一点的都开始使用auth方式管理了.推荐使用此方式: 实现步骤一:引入类库Auth. ...

  7. 为ASP.NET MVC配置基于Active Directory的表单认证方式

    为ASP.NET MVC配置基于Active Directory的表单认证方式 最近一直在研究基于Active Directory的表单认证方式,同时也在关注ASP.NET MVC的情况,同时也在应用 ...

  8. **[权限控制] 利用CI钩子实现权限认证

    http://codeigniter.org.cn/forums/thread-10877-1-1.html 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了, ...

  9. java按钮权限控制_详解Spring Security 中的四种权限控制方式

    Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Se ...

最新文章

  1. Microbiome:南土所梁玉婷组-稻田土壤产甲烷菌的共存模式
  2. 普鲁克分析(Procrustes Analysis)评估物种-环境/功能关联度的一个示例
  3. 苏州的高铁旅游的基本调查
  4. 【机器学习】机器学习初学者绕不开的 15 个 Scikit-Learn 重要技能!
  5. 【Java】Float计算不准确
  6. Lanecat网猫的案例
  7. Web前端岗位面试题汇总(含答案)
  8. ajax返回数据报406,ajax – 406返回JSON对象时出错 – 意外内容
  9. java把控件跑挂了_Java代码动态修改 ConstraintLayout 内控件布局的辅助类
  10. 在事务外自动保存托管JPA实体
  11. BIO ,NIO,AIO的区别
  12. 创建型模式、结构型模式和行为型模式_设计模式之创建型模式
  13. 使用“管道”与“应用程序生命周期”重构:可插拔模块
  14. 如何手动安装wxpython_如何在Ubuntu中安装wxPython的方法及命令
  15. 安装Python报错could not write value to key.....
  16. Scintilla Markers Margins
  17. html 占用空间 滚动轴_html – 缩放子级上的溢出滚动:X和Y轴上的不同行为
  18. python数据分析与应用第五章实训 2_第五章实训(二)
  19. 目标跟踪经典算法汇总(持续更新...)
  20. JAVA中的进制以及转换

热门文章

  1. java 集成kafka单机版 适配jdk1.8
  2. 工作流实战_19_flowable 任务委派
  3. 第12篇:Flowable-BPMN操作流程之用户任务UserTask
  4. VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态怎么解决
  5. 怎么从gitlab上下载别人的代码
  6. C语言 typedef - C语言零基础入门教程
  7. C语言 二维数组定义和使用 - C语言零基础入门教程
  8. C语言逻辑运算符 - C语言零基础入门教程
  9. c++ 字符串相等比较
  10. PHP的html实现xpath解析,php用xpath解析html的代码实例讲解