大部分PHP程序员,都搞不懂如何安全代码部署【二】(nginx篇)

news2024/9/27 7:18:52

在这里插入图片描述

在此之前发布了 代码安全部署的,里面写的nginx 配置安全写了一点点,今天具体补充一下nginx 的配置

nginx站点目录及文件URL访问控制

一、根据扩展名限制程序和文件访问

利用nginx配置禁止访问上传资源目录下的PHP、Shell、Perl、Python程序文件。配置nginx,禁止解析指定目录下的指定程序。

location ~ ^/images/.*.(php|php5|sh|pl|py)$
{
    deny all;
}

location ~ ^/static/.*.(php|php5|sh|pl|py)$
{
    deny all;
}

location ~ ^/data/(attachment|avatar).*.(php|php5)$
{
    deny all;
}

对上述目录的限制必须写在nginx处理PHP服务配置的前面,如下:放置在server标签内:

server {
listen       80;
server_name  www.dmtest.com;
location / {
root   html;
index  index.php index.html index.htm;
}

location ~ ^/images/.*.(php|php5|sh|pl|py)$
{
    deny all;
}

location ~ ^/static/.*.(php|php5|sh|pl|py)$
{
    deny all;
}

location ~ ^/data/(attachment|avatar).*.(php|php5)$
{
    deny all;
}

......
......
}

nginx下配置禁止访问*.txt和*.doc文件配置如下:放置在server标签内:

location ~* .(txt|doc)$ {
      if (-f $request_filename) {
      root /data/www/www;
      #rewrite ...    #可以重定向到某个URL;
      break;
      }
  }
  location ~* .(txt|doc)$ {
      root /data/www/www;
      deny all;
  }

二、禁止访问指定目录下的所有文件和目录

配置禁止党文指定的单个或多个目录。
禁止访问单个目录的命令如下:
放置在server标签内:

location ~ ^/(static)/ {
    deny all;
}

location ~ ^/static {
    deny all;
}

禁止访问多个目录的配置如下:

location ~ ^/(static|js) {
    deny all;
}

禁止访问目录并返回指定的http状态码,配置如下:放置在server标签内:

server {
listen       80;
server_name  www.dmtest.com;
location / {
    root   html;
    index  index.php index.html index.htm;
}
location /admin/ { return 404; }    #访问admin目录返回404;
location /templates/ { return 403; }  #访问templates目录返回403

location ~ ^/images/.*.(php|php5|sh|pl|py)$
{
    deny all;
}

作用:禁止访问目录下的指定文件或者禁止访问指定目录下的所有内容。

三、限制网站来源IP访问

禁止目录让外界访问,但允许某IP访问该目录且支持PHP解析,配置如下:
在server标签内配置如下:

location ~ ^/mysql_loging/ {
    allow 192.168.0.4;
    deny all;
}

location ~ .*.(php|php5)?$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

说明:该配置只允许192.168.0.4IP访问mysql_loging目录限制IP或IP段访问,配置如下:添加在server标签内:

location / {
    deny 192.168.0.4;
    allow 192.168.1.0/16;
    allow 10.0.0.0/24;
    deny all;
}

说明:此限制是对某些IP做整个网站的限制访问。nginx做反向代理的时候也可以限制客户端IP,具体如下:方法1:使用if来控制,配置如下:

if ( $remoteaddr = 10.0.0.7 ) {
    return 403;
}

if ( $remoteaddr = 218.247.17.130 ) {
    set $allow_access_root 'ture';
}

方法2:利用deny和allow只允许IP访问,配置如下:

location / {
    root html/blog;
    index index.php index.html index.htm;
    allow 10.0.0.7;
    deny all;
}

方法3:只拒绝某些IP访问,配置如下:

location / {
    root html/blog;
    index indx.php index.html index.htm;
    deny 10.0.0.7;
    allow all;
}

注意事项:deny一定要加一个IP,否者会直接跳转到403,不在往下执行了,如果403默认页在同一域名下,会造成死循环访问。对于allow的IP段,从允许访问的段位从小到大排列,如127.0.0.0/24的下面才能是10.10.0.0/16,其中:

  • 24表示子网掩码:255.255.255.0
  • 16表示子网掩码:255.255.0.0
  • 8表示子网掩码:255.0.0.0以deny all;
    结尾,表示除了上面允许的,其他的都禁止。如:
  • deny 192.168.1.1;
  • allow 127.0.0.0/24;
  • allow 192.168.0.0/16;
  • allow 10.10.0.0/8;
  • deny all;

四、配置nginx,禁止非法域名解析访问企业网站

方法1:让使用IP访问网站的用户,或恶意接卸域名的用户,收到501错误,配置如下:

server {
listen 80 default_server;
server_name _;
return 501;
}

方法2:通过301跳转主页,配置如下:

server {
listen 80 default_server;
server_name _;
rewrite ^(.*) http://www.dmtest.com/$1 permanent;
}

方法3:发现某域名恶意解析到公司的服务器IP,在server标签里添加以下代码即可,若有多个server要多处添加

if ($host !~ ^www/.dmtest/.com$) {
        rewrite ^(.*) http://www.dmtest.com.com$1 permanent;
}

参考

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

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

相关文章

基于图像识别的小车智能寻迹控制系统

目录 摘要…… I Abstract II 基于图像识别的智能寻迹控制系统设计 I Design of Intelligent tracking Control system based on Image recognition II 目录 III 第1章 绪论 1 1.1 课题背景 1 1.1 国内外文献综述 1 1.2 论文研究内容 2 第2章 基于图像识别的智能寻迹控制系统方…

代码随想录训练营第30天|LeetCode 332.重新安排行程、51. N皇后、 37. 解数独、回溯总结

参考 代码随想录 题目一:LeetCode 332.重新安排流程 这道题目有几个难点: 一个行程中,如果航班处理不好容易变成一个圈,成为死循环有多种解法,字母序靠前排在前面,让很多同学望而退步,如何该…

没有项目管理经验,可以参加PMP考试吗?

咱们先来了解一下PMP,PMP认证是一项针对项目管理的资格认证,属于管理学中的经济/项目管理,也是目前职业资格认证中含金量较高的,堪比MBA、MPA。 许多大型私企和外企在招聘项目管理者和项目组成员的时候都优先考虑持有PMP认证的人…

【问题】Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口

Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口 文章目录Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题和Nginx部署vue项目访问不了接口Nginx部署vue项目进行跳转二级路由报404无法找到目标页面问题**问题** &#x…

社区垃圾分类督导AI盒子应用的痛点难点分析

载止于2022年底,我司A社区垃圾分类督导AI视频分析盒子已经在华东(上海、杭州、无锡等地),华南地区(深圳等地)大量上线,本人负责垃圾分类算法AI盒子的开发历时5年之久,从多年试点到现在规模上线使…

react源码分析:组件的创建和更新

这一章节就来讲讲ReactDOM.render()方法的内部实现与流程吧。 因为初始化的源码文件部分所涵盖的内容很多,包括创建渲染、更新渲染、Fiber树的创建与diff,element的创建与插入,还包括一些优化算法,所以我就整个的React执行流程画了…

算法入门 | 二叉树的递归遍历、递归创建系列(递归)

目录 1. 二叉树的遍历规则 2. 二叉树的结构体设计 【leftchild data rightchild】 3. 二叉树的递归先序、中序、后序遍历 4. 利用已知字符串(二叉树的先序序列)递归创建一棵二叉树 (1)购买节点函数 (2&#xff…

【附源码】计算机毕业设计JAVA移动学习网站

【附源码】计算机毕业设计JAVA移动学习网站 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

阻止网络钓鱼诈骗的技巧

根据 Verizon 的2022 年数据泄露调查报告,25% 的数据泄露始终涉及网络钓鱼。 这是怎么发生的?参与网络钓鱼的欺诈者往往是一些掌握发文技巧的内容作者。他们知道如何创造一种紧迫感,让您点击通知并阅读消息。 很多用户落入了他们的陷阱&…

录屏软件哪个好?比较好用的录屏软件,这4款值得一试!

​现在很多人都会使用录屏软件,有些用来录制游戏里的精彩操作,有些用来录制线上的教学课程,有些用来录制在线视频会议。如今录屏软件种类繁多。选择一个好的录屏软件十分重要。录屏软件哪个好?比较好用的录屏软件有哪些&#xff1…

Zebec开启多链布局,流支付生态持续扩张

随着 Do Kwon 的Terra 以及 Sam Bankman-Fried 的 FTX,这两个加密行业的“庞大帝国”轰然倒塌后,Terra生态毁于一旦,而辉煌一时的Solana生态也失去了“靠山”,尤其是在Solana屡次宕机、在FTX危机时增发SOL代币后,进一步…

骨传导耳机会损伤大脑吗?一分钟详细了解骨传导耳机

骨传导耳机会损伤大脑吗?这个问题一直都有很多人在问,相对传统入耳式耳机来说,骨传导耳机更能保护我们的听力与大脑,骨传导耳机的工作原理跟传统耳机不一样,它不会损伤到大脑,下面我来跟大家说一下骨传导耳…

Python: 10大Web框架简介

文章目录简介一、Web 框架三大分类**1. 全栈框架****2.微框架****3.异步框架**二、Python Web 框架的优点三、十大 Python Web 开发框架1.Django2. Flask3.CherryPy4.Pyramid5. Grok6.Turbogears7.Zope38. Bottle9.Web2py10. Tornado小结简介 在这篇文章中了解一些可供您使用的…

dolphinscheduler-data-quality-3.1.0 部署

前提条件 dophinscheduler-3.1.0 安装 standalone-server 模式,参考 https://blog.csdn.net/windydreams/article/details/127678233 编译数据质量源码 为了保障后期正常运行,简化配置,可以进行以下配置 1)添加资源文件src/mai…

疫情之下,企业如何才能高效的进行异地协同办公?

随着经济社会的飞速发展再加上现在疫情反反复复的出现,很多公司的业务不再受地域的限制,所以出差就成了很多职场人士的家常便饭,而这一现象也加剧了异地办公模式的兴起,因为即便身处异地,也需要及时向领导汇报工作进度…

防爆定位信标与防爆定位基站有什么区别?

防爆定位信标与防爆定位基站都是组成人员定位系统的硬件设备。一套完整的人员定位系统由硬件设施和软件系统组成,其中硬件设施包括人员定位卡、防爆定位信标和防爆定位基站。 在大数据、信息化时代,基于蓝牙LoRa定位技术的融合定位系统,让我们…

2008-2020年全国各省劳动生产率

2008-2020年全国各省劳动生产率 1、包括:全国31省 2、来源:国J统计局 3、指标包括: 人均受教育年限、劳动生产率、6岁及6岁以上人口数(人口抽样调查)(人)、6岁及6岁以上初中人口数(人口抽样调查)(人)、 6岁及6岁以上大专及以上人口数(人…

机器学习分类方法

1、支持向量机 1.1支持向量机简介: 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧&…

【教学类-18-02】20221124《蒙德里安“红黄蓝黑格子画”-A4竖版》(大班)

效果展示: 单页效果 多页效果 预设效果 背景需求: 2022年11月23日,作为艺术特色幼儿园,蒙德里安风格装饰在我们幼儿园的环境中。 蒙德里安是几何抽象画派的先驱,以几何图形为绘画的基本元素,与德士堡等创…

Python毕业设计选题推荐

同学们好,这里是海浪学长的毕设系列文章! 对毕设有任何疑问都可以问学长哦! 大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越…