authinfo.php,【nginxphp】后台权限认证方式
一、最常用的方法(代码中限制)
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】后台权限认证方式相关推荐
- 比RBAC更好的权限认证方式(Auth类认证)
Auth 类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程, 很少人知道它, 它其实比RBAC更方便 . RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了, ...
- Java权限管理|基于springBoot+springSecurity+jwt实现前后端分离用户权限认证
基于springBoot+springSecurity+jwt实现前后端分离用户权限认证 1. 项目说明 主要基于前后端分离情况下用户权限认证, 当用户登录认证成功后,每个用户会获取到自己的tok ...
- Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)
db_修改过(用户 角色 权限): 1.新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错: 2.删除用户时候,若该用户创建过其他用户(不能改此用户名. ...
- k8s-身份认证与权限 认证鉴权准入控制- 各种方式带例子-推荐-2023
# 认证 鉴权 准入控制 ACL 了解 原文:k8s认证.授权与准入控制 - 哪都通临时工 - 博客园 (cnblogs.com) 认证(Authentication):API Server 可以支持 ...
- php auth和rbac区别,php中比rbac更好的权限认证的方式auth类认证
RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了,比如页面上面的操作按钮, 我想判断用户权限来显示这个按钮, 如果没有权限就不会显示这个按钮: 再比如我想按积分进行权限认证, 积分在 ...
- thinkphp mysql权限管理_TP thinkphp 权限管理 权限认证 功能
目前,在tp框架中做权限管理 分rbac(老)与auth(推荐)认证方式: 老的tp版本中封装的是rbac认证: 新一点的都开始使用auth方式管理了.推荐使用此方式: 实现步骤一:引入类库Auth. ...
- 为ASP.NET MVC配置基于Active Directory的表单认证方式
为ASP.NET MVC配置基于Active Directory的表单认证方式 最近一直在研究基于Active Directory的表单认证方式,同时也在关注ASP.NET MVC的情况,同时也在应用 ...
- **[权限控制] 利用CI钩子实现权限认证
http://codeigniter.org.cn/forums/thread-10877-1-1.html 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了, ...
- java按钮权限控制_详解Spring Security 中的四种权限控制方式
Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Se ...
最新文章
- Microbiome:南土所梁玉婷组-稻田土壤产甲烷菌的共存模式
- 普鲁克分析(Procrustes Analysis)评估物种-环境/功能关联度的一个示例
- 苏州的高铁旅游的基本调查
- 【机器学习】机器学习初学者绕不开的 15 个 Scikit-Learn 重要技能!
- 【Java】Float计算不准确
- Lanecat网猫的案例
- Web前端岗位面试题汇总(含答案)
- ajax返回数据报406,ajax – 406返回JSON对象时出错 – 意外内容
- java把控件跑挂了_Java代码动态修改 ConstraintLayout 内控件布局的辅助类
- 在事务外自动保存托管JPA实体
- BIO ,NIO,AIO的区别
- 创建型模式、结构型模式和行为型模式_设计模式之创建型模式
- 使用“管道”与“应用程序生命周期”重构:可插拔模块
- 如何手动安装wxpython_如何在Ubuntu中安装wxPython的方法及命令
- 安装Python报错could not write value to key.....
- Scintilla Markers Margins
- html 占用空间 滚动轴_html – 缩放子级上的溢出滚动:X和Y轴上的不同行为
- python数据分析与应用第五章实训 2_第五章实训(二)
- 目标跟踪经典算法汇总(持续更新...)
- JAVA中的进制以及转换
热门文章
- java 集成kafka单机版 适配jdk1.8
- 工作流实战_19_flowable 任务委派
- 第12篇:Flowable-BPMN操作流程之用户任务UserTask
- VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态怎么解决
- 怎么从gitlab上下载别人的代码
- C语言 typedef - C语言零基础入门教程
- C语言 二维数组定义和使用 - C语言零基础入门教程
- C语言逻辑运算符 - C语言零基础入门教程
- c++ 字符串相等比较
- PHP的html实现xpath解析,php用xpath解析html的代码实例讲解