FastAdmin中如何只允许某IP段访问和只允指定IP访问

已知IP地址,在Fastadmin中如何确认该IP地址所在的城市及行政区? 需要注意的是,纯真IP数据库中的 IP 地址信息并不是百分之百准确的,有时会有误差或缺失。另外,为了防止恶意访问或 SQL 注入等安全问题,需要对用户输入的 IP 地址进行验证和过滤。要确认一个 IP 地址所在的城市及行政区,需要使用 IP 数据库,可以从第三方提供商购买或下载。的控制器(Controller)用于查询 IP 地址所在的城市及行政区。以下以纯真IP数据库为例,假设已将纯真IP数据库的文件。需要替换为实际的网站域名或 IP 地址。扩展类库,可以在控制器的。所在的城市及行政区。 阅读详情

只允许某IP段访问

/**
 * IP段访问限制
 *
 * @param string $ipSegment 允许的IP段,例如:10.144.39.*
 * @return bool
 */
protected function checkIpSegment($ipSegment)
{
    $ip = $this->request->ip();

    // 将 * 转换为正则匹配
    $pattern = '/^' . str_replace(
        ['.', '*'],
        ['\.', '\d{1,3}'],
        $ipSegment
    ) . '$/';

    return preg_match($pattern, $ip) === 1;
}

// 调用
if (!$this->checkIpSegment('10.144.39.*')) {
    return json([
        'status' => 2,
        'msg'    => '该IP段无权限访问',
        'data'   => $this->request->ip()
    ]);
}

只允许指定 IP 访问

/**
 * 指定IP访问限制
 *
 * @param array $allowedIps 允许访问的IP列表
 * @return bool
 */
protected function checkAllowedIp(array $allowedIps)
{
    $ip = $this->request->ip();

    return in_array($ip, $allowedIps, true);
}

// 调用
$allowedIps = [
    '10.144.39.132',
    '10.144.39.133',
    '10.144.39.134',
];

if (!$this->checkAllowedIp($allowedIps)) {
    return json([
        'status' => 2,
        'msg'    => '该IP无权限访问',
        'data'   => $this->request->ip()
    ]);
}

统一成一个方法

/**
 * IP访问权限检查
 *
 * 支持:
 * 10.144.39.132   指定IP
 * 10.144.39.*     IP段
 * 10.144.*.*      IP段
 *
 * @param array $allowedIps
 * @return bool
 */
protected function checkIp(array $allowedIps)
{
    $ip = $this->request->ip();

    foreach ($allowedIps as $allowedIp) {

        // 指定IP
        if ($ip === $allowedIp) {
            return true;
        }

        // IP段
        if (strpos($allowedIp, '*') !== false) {
            $pattern = '/^' . str_replace(
                ['.', '*'],
                ['\.', '\d{1,3}'],
                $allowedIp
            ) . '$/';

            if (preg_match($pattern, $ip)) {
                return true;
            }
        }
    }

    return false;
}

// 调用
if (!$this->checkIp([
    '10.144.39.132',
    '10.144.39.133',
    '10.144.40.*',
])) {
    return json([
        'status' => 2,
        'msg'    => '该IP无权限访问',
        'data'   => $this->request->ip()
    ]);
}

后期只需要维护:

[
    '10.144.39.132', // 指定IP
    '10.144.39.133', // 指定IP
    '10.144.40.*',   // IP段
]

fastadmin前台分片漏洞 参考链接:fastadmin安装fastadmin安装前台分片漏洞复现:https://blog.youkuaiyun.com/weixin_43288600/article/details/121192252https://blog.youkuaiyun.com/u013921288/article/details/117670844https://xz.aliyun.com/t/9395FastAdmin最新RCE漏洞复现https://www.secpulse.com/archives/157307.html搭建好环境后,查 阅读详情

相关推荐

FastAdmin被劫持了怎么办?

FastAdmin是一款基于ThinkPHP和Bootstrap的开源后台框架,专为开发者设计,旨在提高开发效率。作为网站管理员,最担心的事莫过于网站被入侵了,其中非法上传Webshell和网站劫持是常用的入侵手段。

护卫神的博客 1130

fastadmin官方常见问题必看

在FastAdmin框架中如果使用了throw new \think\exception\HttpException(404, '页面不存在');或abort(404,'页面不存在');抛出了404错误,默认情况下会提示你所浏览的页面暂时无法访问,如果我们希望自定义404的错误页面,可以修改配置文件,找到// 定义404错误的重定向页面地址],复制然后在对应的目录下创建404.tpl模板即可。温馨提示1、该配置仅在生产环境下生效,如果开启了调试模式仍然会提示详细的错误信息。2、默认修改会对。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7126

fastadmin支付插件

public function rechargePurchasing(){ $user_id = $this->auth->id; $userOpenid = Db::name('***')->where('user_id','=',$user_id)->value('openid'); $recharge_id = $this->request->request('recharge_id',1); $recharge_find =

1315

FastAdmin详细安装教程

是一个基于和的后台管理系统,功能完善,扩展性强,适合快速开发后台管理系统。以下是详细的 FastAdmin 安装教程。

2401_87017622的博客 4345

Ubuntu新手必看:3种方法快速查看和编辑JSON文件(附jq安装指南)

本文为Ubuntu新手详细介绍了三种查看和编辑JSON文件的核心方法:命令行利器jq、灵活脚本Python以及直观的图形化编辑器(如VS Code)。文章重点解析了jq的安装与核心用法,并对比了各方案的优缺点,帮助用户根据快速查询、复杂处理或直观编辑等不同场景,选择最合适的工具,从而高效处理JSON数据。

weixin_29229989的博客 416

Nangate 45nm FreePDK开源工艺库:从RTL到GDSII全流程实战

在数字IC设计中,标准单元库是连接逻辑综合与物理实现的基石,它定义了每个单元的逻辑功能、时序延迟与物理尺寸。开源EDA工具链的成熟,使得个人也能借助免费工艺套件完整跑通芯片设计流程。Nangate 45nm FreePDK作为一套经典的开源工艺库,凭借结构清晰、配套完善的特性,成为学习数字后端和时序收敛的理想训练场。从综合工具Yosys读取Liberty文件进行逻辑映射,到OpenROAD执行布局布线与时钟树综合,再到使用OpenSTA分析关键路径延迟,这套流程涵盖了数字设计最核心的环节。通过亲手操作,开发

weixin_29168393的博客 271

Fastadmin中获取IP和手机号归属地信息

【代码】Fastadmin中获取IP和手机号归属地信息。

withoutfear的博客 110

kettle9.0+ 连接Hadoop报错

kettle bug

x²+(y-√³x²)²=1的博客 1559

记录一下fastadmin投票插件的爬坑之旅

三 我发现使用过程中,fastadmin后台框架中有些请求我明明用的是https,但是里面的请求有的是http,导致后台有写接口访问很慢,查看代码可知,在config里可以设置强制是用https。因为我们做了一层代理,所以用着获取不到用户的真正ip,只能用HTTP_X_CLIENT_IP这个函数,用$_SERVER函数打印出来就明白了。我安装完之后发现投票的ip都是127.0.0.1 于是我看了一下代码,发现获取远程ip用的是。需要深入了解的小伙伴,可以搜一下代码is_https就明白是怎么实现的了。

xiaopzi的博客 1213

联想Y9000P安装Ubuntu20.04记录

联想Y9000P 2022安装Ubuntu20.04问题记录

Legendyyy的博客 7115

避坑指南:STM32CubeMX安装后,你的第一个工程为什么中文全是乱码?

本文详细解析了STM32CubeMX安装后中文乱码问题的根源及解决方案。从诊断乱码现象到分析编码冲突背景,提供了新项目UTF-8化、旧项目GBK兼容及版本降级等多种实用方案,帮助开发者彻底解决这一常见问题。

weixin_30699955的博客 474

Fastadmin 登录问题 ,fastadmin 系统,经常需要反复登陆的解决办法

经过排查发现fastadmin的默认登录验证会对 ip进行对比。将数据库保存的最后一次登录ip与当前ip比较,如果不相同则会跳转到登录页重新登录,并更新当前ip地址。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/qq_40971915/article/details/106816266。application/admin/library/Auth.php 中的isLogin方法下。

AI 前沿技术实战博客:LLM / Agent / AI 制药 / 生信四大栏目日更,硬核干货 + 可复现代码,看完就能上手 1125

保姆级教程:用GROMACS的FEP方法计算小分子结合自由能(附完整mdp配置)

本文提供了一份详细的GROMACS自由能微扰(FEP)计算教程,涵盖从系统准备、参数配置到结果分析的全流程。通过具体案例演示如何计算小分子结合自由能,包括λ窗口设计、动力学参数优化及并行化执行技巧,帮助研究者克服FEP计算中的常见问题,获得可靠的自由能数据。

weixin_30598225的博客 353

Fastadmin 登录问题

Fastadmin 登录问题 在做一个新项目时,采用了fastadmin框架。同一个账号总会出现两次需要登录的情况,用户体验很差。 经过排查发现fastadmin的默认登录验证会对ip进行对比。 将数据库保存的最后一次登录ip与当前ip比较,如果不相同则会跳转到登录页重新登录,并更新当前ip地址。 文件位置: application/admin/library/Auth.php 中的isLogin方法下 if (!isset($admin['loginip']) || $admin['loginip']

qq_40971915的博客 5725

Unity中的Timeline

Timeline与动画系统类似,但是它可以针对多个物体做出一系列多个动画,它可以创建多个轨道,对象激活与隐藏轨道,动画轨道,声音轨道等。每个轨道都可以单独编辑,轨道内的不同资源可以排列并且融合

L的博客 1万+

Arcgis使用NDVI值遥感反演叶面积指数(LAI)

经验模型反演操作不难,主要是要多看文献,了解公式。本文中的公式我也不清楚是哪个作物的NDVI和LAI的关系(别人提供的),继续看文献整理吧。后续会在下面罗列更新一下主要公式。

所有专家都曾始于新手 8430

Fastadmin后台登入问题

最近更新了fastadmin框架的最新版,发现后台登入有个很不好的体验。 每次更换不同的网络,相同的账号会需要重新登入,这样会显得很麻烦。 经过排查,原来是新版本做个IP地址比对,就是每次有更新IP地址的时候,需要重新登入一次账号。 解决的办法也很简单: 1、application/admin/library/Auth.php 中的isLogin方法下 2、找到下面的代码,注释掉就可以了 if (Config::get('fastadmin.loginip_check')) {

u012365440的博客 4303

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

fastadmin 直接访问 admin.php 你所浏览的页面暂时无法访问,选择thinkphp的规则即可

如果你使用的是宝塔面板环境,请在网站->站点-设置->伪静态中选择thinkphp的规则即可。 服务器:阿里云服务器, 环境:宝塔,lnmp 这是一个PC官网,用的是fastadmin框架,后台想直接使用admin.php【这个看自己需求 ,官方的、改成自定义的都行】登录,但是一直报错"你所浏览的页面暂时无法访问" 费了好些时间+向同事请教, 以为是IP访问的原因, 以为是nginx 的版本问题,修改了版本; 以为是fastadmin 的版本问题【并不能解决这个问题】 …

hadu_kaka的专栏 5444

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Fastadmin中对接微信服务号服务配置

在fastadmin对接微信公众号时遇到验证不通过情况及解决

json_li的博客 459

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

FastAdmin安装后别急着开发!先做好这5步安全与效率设置(ThinkPHP框架优化)

本文详细介绍了FastAdmin安装后必须完成的5项关键安全与效率设置,包括后台入口加固、数据库安全防护、伪静态优化、调试模式配置和目录结构调整。这些优化措施能有效提升ThinkPHP框架下的开发安全性和效率,特别适合需要快速部署的企业级项目。

weixin_30627341的博客 291

fastadmin基础

fastadmin基础

L_s_c_h的博客 542

使用 FastAdmin 搭建高并发 API 系统--00.简介篇

摘要:FastAdmin可快速搭建收费API系统后台管理功能,但其原生不支持高并发和收费结算。解决方案采用分层架构:FastAdmin负责用户/订单管理等后台功能;API服务层使用ThinkPHP+Swoole提升并发能力;高并发层通过Nginx负载均衡+Redis缓存优化性能;收费层实现API限流、计量统计和支付集成。该方案适合中小规模并发场景(QPS1万以内),需注意性能监控、安全防护和扩展性,后期可替换API服务层为Go/Java以支持更高并发。

术不贱卖、道不轻传 1378

fastadmin 插件安装教程

5、登录fastadmin后台,点击左边功能区 插件管理 ,再点右边 本地安装 ,找到对应的插件压缩包上传安装(例如:qingdongwms-1.1.3-extended.zip、qingdong-3.2.2-extended.zip、cms-2.2.0-extended.zip、ldcms-1.3.5-extended.zip、deerhome-1.1.3-extended.zip、shopro-3.0.7-extended.zip)。6、刷新后台,会看到左边功能列表里有对应的菜单。

qq_35940192的博客 1166

FastAdmin框架超级管理员密码安全策略与实战重置指南

本文针对FastAdmin框架中超级管理员密码遗忘这一常见问题,提供了详细的安全重置指南。文章重点介绍了最可靠的数据库直接修改方法,分析了命令行重置的局限性,并探讨了自定义命令的高级玩法。同时,深入解读了FastAdmin的密码安全机制,并给出了防患于未然的账户安全最佳实践,帮助开发者有效管理后台安全。

k6l7m8n9的博客 1052

php同ip注册限制代码,php限制ip地址范围的方法

本文实例讲述了php限制ip地址范围的方法。。具体如下:只有在限定范围内的ip地址才能访问function get_real_ipaddress() {if (!empty($_SERVER['HTTP_CLIENT_IP'])) {return $_SERVER['HTTP_CLIENT_IP'];} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']...

weixin_30956665的博客 385

Fastadmin中发送邮件验证码

本文将使用163邮箱讲解发送邮件的配置及使用fastadmin发送验证码邮件。

json_li的博客 729
上一篇: IntelliJ IDEA卡顿内存分配不足和索引被频繁触发问题解决办法
下一篇: FastAdmin权限控制参数和一键压缩打包命令
withoutfear
博客等级 码龄13年 541粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

withoutfear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值