PHP如何禁止外网访问

php中文网
发布: 2016-06-06 20:29:37
原创
2554人浏览过

某个php文件,如果禁止外网访问,即这个php仅限服务器访问
因为很多数据需要用到定时任务定时运行php脚本生成,以防外网或蜘蛛运行此php而生成错误的数据,所以需要屏蔽外网,只限服务器访问。

回复内容:

某个php文件,如果禁止外网访问,即这个php仅限服务器访问
因为很多数据需要用到定时任务定时运行php脚本生成,以防外网或蜘蛛运行此php而生成错误的数据,所以需要屏蔽外网,只限服务器访问。

一般直接对外服务的服务器,都是由Web服务器接受HTTP请求,然后再转给mod_php或者php-fpm解释执行PHP程序。这意味着完全可以在Web服务器上限制。Apache服务器的限制方法 @iefsou 君已经提供了,我来写个nginx的限制配置:

location /uri/path/to/your/script.php {
    allow 192.168.0.0/16;
    allow 172.16.0.0/12;
    allow 10.0.0.0/8;
    allow 127.0.0.0/8;
    deny all;
}
登录后复制

这个方法也可以用在外网限制个别IP可以访问,具体请参考nginx的access模块配置手册。

当然,在PHP程序里限制也不是不可以,按同样的方式判断用户的IP是否局域网IP:

立即学习PHP免费学习笔记(深入)”;

function is_local_ip($ip_addr = null) {
    if (is_null($ip_addr)) {
        $ip_addr = $_SERVER['REMOTE_ADDR'];
    }
    $ip = ip2long($ip_addr);
    return $ip & 0xffff0000 == 0xc0a80000 // 192.168.0.0/16
        || $ip & 0xfff00000 == 0xac100000 // 172.16.0.0/12
        || $ip & 0xff000000 == 0xa0000000 // 10.0.0.0/8
        || $ip & 0xff000000 == 0x7f000000 // 127.0.0.0/8
    ;
}
登录后复制

如果不是来自局域网,你就header输出个403或者显示个错误页面给他看就行。

值得一提的是用PHP的方法判断会导致请求必须交给PHP解释器,然而PHP解释器的性能比nginx直接返回403要差得太多,具体可以自己压测一下。当然如果是在开发给客户自己安装的产品就不要让没经验的小白客户们改服务器配置了。

Modoer多功能点评系统2.5 精华版 Build 20110710 UTF8
Modoer多功能点评系统2.5 精华版 Build 20110710 UTF8

Modoer 是一款以本地分享,多功能的点评网站管理系统。采用 PHP+MYSQL 开发设计,开放全部源代码。因具有非凡的访问速度和卓越的负载能力而深受国内外朋友的喜爱,不局限于商铺类点评,真正实现了多类型的点评,可以让您的网站点评任何事与物,同时增加产品模块,也更好的网站产品在网站上展示。Modoer点评系统 2.5 Build 20110710更新列表1.同步 旗舰版系统框架2.增加 限制图片

Modoer多功能点评系统2.5 精华版 Build 20110710 UTF8 2
查看详情 Modoer多功能点评系统2.5 精华版 Build 20110710 UTF8

Apache的Url重写能解决这个问题

RewriteCond %{REQUEST_URI} myfile\.php [NC]
RewriteCond %{REMOTE_ADDR} !^127.0.0.1$
RewriteRule .* - [R=503,L]

http://path/test.php/sign=123456 `
if($__GET["sign"] != 123456){exit;}

登录后复制

获取IP与内网IP匹配

我感觉如果可以的话在网关里再寻一端口,然后放到那个端口上这样比较方便

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol)

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号