Apache相关的几个安全漏洞修复

2023-11-17

最近网站被扫描出几个漏洞,大部分都是apache配置引起的,在此记录一下怎么修复。

1.检测到目标URL存在http host头攻击漏洞

头攻击漏洞,比较常见的漏洞,修复的方法也提供了

漏洞的详细描述:
为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。

解决办法:
web应用程序应该使用SERVER_NAME而不是host header。
在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项

我们使用的正好是apache,所以加上相关配置应该就可以了。

ServerName www.xxxxxx.com
UseCanonicalName On

2. HTTP Security Header Not Detected


这里主要是头部缺少了一些参数,修复的办法漏洞文档也提供了,加上缺失的参数。可以在nginx上加,也可以在apache上加。

这里可以看下:https://www.linux.org/threads/fixing-http-security-header-not-detected.12462/

Apache修复方法:

Header always append X-Frame-Options SAMEORIGIN
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Nginx修复方法:

add_header x-frame-options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
add_header X-Content-Type-Options nosniff;

修改后curl进行测试,参数都带上了

3. Directory Listing

这个漏洞主要是说网站现在有一些目录可以直接访问,比如一些js、css的文件夹,这个问题还是比较严重的。
表现如下:

本来发现这个问题我第一个反应是不是Nginx打开了autoindex,然后去看了 Nginx的配置文件,发现并不是。

然后猜测是Apache的配置引起的,上网查了下,还真是。
看了下配置文件,配置的是:Options Indexes FollowSymLinks
查到的资料是改为:Options FollowSymLinks ,把 Indexes 去掉

DocumentRoot "/var/www/html"
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride AuthConfig FileInfo Indexes Limit Options=All,MultiViews
    Require all granted
</Directory>

在测试环境改了之后发现可以,再访问的时候就是 403 Forbidden

然后开始申请上生产,这里问题就来了,生产机器改了之后发现还是可以继续访问目录。囧

继续看配置文件,发现还有别的地方配置了可以目录访问,

关于apache的配置我也没有深入了解过,看着感觉有问题,在我本地试了之后发现确实是由于这个引起的,所以也需要修改,
改为 Options FollowSymLinks

这里我猜测上面的Directory 里面是apache的默认配置,VirtualHost 里是我们设置的某个端口的配置,所以请求进来读取的配置应该是 VirtualHost 里面的,所以里面的配置也需要进行修改。

<VirtualHost *:80>
    DocumentRoot F:\workspace_sz\new_svn\dev\var\www\html
        <Directory "F:\workspace_sz\new_svn\dev\var\www\html">
            #Options -Indexes
            #Options All
	        Options FollowSymLinks
            AllowOverride All
            #Order allow,deny
            #allow from all
        </Directory>
</VirtualHost>

因为我对这个配置也不是太熟,在此记录一下,有问题希望大家指正,谢谢

4. Apache重启方法

httpd -k graceful
httpd -k restart

推荐使用 httpd -k graceful
USR1或graceful信号使得父进程建议子进程在完成它们现在的请求后退出(如果他们没有进行服务,将会立刻退出)。父进程重新读入配置文件并重新打开日志文件。每当一个子进程死掉,父进程立刻用新的配置文件产生一个新的子进程并立刻开始伺服新的请求。

httpd -k graceful 也叫优雅重启
这里可以看下:https://www.cnblogs.com/zjzhuwenbo/archive/2013/12/12/3471231.html

1.停止

    apachectl -k stop

   发送TERM或stop信号到父进程可以使它立刻杀死所有子进程。这将花费一些时间来杀死所有子进程。然后父进程自己也退出。所有进行中的请求将被强行中止,而且不再接受其它请求。

2.重启

    apachectl -k restart 

   向父进程发送HUP或restart信号会使它象收到TERM信号一样杀掉所有的子进程,不同之处在于父进程本身并不退出。它重新读入配置文件、重新打开日志文件。然后产生一系列新的子进程来继续服务。

3.优雅重启

    apachectl -k graceful 

   USR1或graceful信号使得父进程建议子进程在完成它们现在的请求后退出(如果他们没有进行服务,将会立刻退出)。父进程重新读入配置文件并重新打开日志文件。每当一个子进程死掉,父进程立刻用新的配置文件产生一个新的子进程并立刻开始伺服新的请求。


4.优雅停止

    apachectl -k graceful-stop

   WINCH或graceful-stop信号使得父进程建议子进程在完成它们现在的请求后退出(如果他们没有进行服务,将会立刻退出)。然后父进程删除PidFile并停止在所有端口上的监听。父进程仍然继续运行并监视正在处理请求的子进程,一旦所有子进程完成任务并退出或者超过由GracefulShutdownTimeout指令规定的时间,
    父进程将会退出。在超时的情况下,所有子进程都将接收到TERM信号并被强制退出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache相关的几个安全漏洞修复 的相关文章

  • 用C++封装一个Ocr文字识别程序,离线识别,完全免费

    程序封装了RapidOcr模块 源文件路径Tree信息如下 文件夹 PATH 列表 卷序列号为 43EE 6931 D build windows bat CMakeLists txt CMakeSettings json Ocr cpp
  • Centos7版本的安装超级详细

    Centos7的安装超级详细 关于Centos版本下载地址 https archive kernel org centos vault CentOS 7 0 1406 x86 64 DVD iso 标准安装版 一般下载这个就可以了 Cent
  • 线程创建的三种方法

    继承Thread类 1 继承Thread类 2 重写run 方法 3 调用start 方法开启线程 public class testThread1 extends Thread Override public void run run 方
  • Qt浅谈之一:内存泄露(总结)

    一 简介 Qt内存管理机制 Qt 在内部能够维护对象的层次结构 对于可视元素 这种层次结构就是子组件与父组件的关系 对于非可视元素 则是一个对象与另一个对象的从属关系 在 Qt 中 在 Qt 中 删除父对象会将其子对象一起删除 C 中del
  • 谷歌chrome浏览器的源码分析(一)

    随着网络技术的发展 越来越多应用都已经离不开网络 特别像人类大脑一样的知识库的搜索引擎 更加是离不开功能强大的云计算 不过 即便云计算非常强大 但它还不能直接地把结果呈现给用户 这样就需要一个客户端来呈现出来 这个客户端就是浏览器 现在越来
  • 归并排序(分析与模板)

    归并排序 思路 1 确定分界元素mid left right 2 2 递归分解数组 两两组合组成两个有序数组 3 归并 合二为一 int temp 100010 merge sort int num int l int r if l gt
  • std::thread线程命名

    也可以参考我另外一篇文章 另外一篇更详细些 为线程设置名字的最大的好处是在程序出错时 它会出现在 GDB 的出错信息里 可以更快地定位问题 有两种方法可以给线程设置名字 一种在线程的调用函数内部设置 还有一种是在外部对指定线程变量做设置 i
  • 【软件测试】未来软件测试必备的8大技能,你缺少哪几个?

    软件测试工程师是个神奇的职业 他是开发人员与老板之间的传话筒 三夹板 也是开发人员与老板的好帮手 他不仅需要有销售的沟通能力 也需要具备编辑人员的文档撰写技巧 如此一个面面俱到的岗位 他需要具备的技能到底有哪些呢 有逆向思维的能力 曾经采访
  • 算法:两个有序数组合并成一个有序数组 java语言

    题目 有两个有序数组a 和b 将它们合并成数组c 需要c 也是有序数组 思路 新建一个以两个集合长度之和为长度的新数组 从两数组最左边开始比起 把小的放入新集合 并用变量标记后一位置 每次比较都是比较的最左边未比较过的元素 通过变量 循环比
  • 分享一个可交互的小场景(二)

    先看效果 可互动的小场景 再看代码 JS部分
  • 正点原子I.MX6ULL开发板车牌识别项目实战 1

    1 项目总体概述 下图为 车牌识别项目 的系统框图 借助这个框图 简要介绍项目的总体思路和所需要做的准备工作 1 1 总体思路 通过摄像头采集图像信息 并将图像信息传递开发板 这里使用的是OpenCv 开发板收到图像信息之后 通过定时器 周
  • Python解决ModuleNotFoundError: No module named 'Queue'的问题

    我们知道Python2和Python3两个版本之间 有些不兼容的地方 Python3中引入Queue会报出这个问题 Python3中要这样引入 1 import queue Python2中要这样引入 1 import Queue 为了兼容
  • 第十六课,面剔除

    使用OpenGL的面剔除选项 它默认是禁用状态 glEnable GL CULL FACE 直接运行后 我们发现正方体的部分面确实被剔除了 但是却不是背向面 这是因为我们定义的正方体并不是严格遵循逆时针顺序定义的 原理详见教程 这里就不过多
  • python输出文本 去掉引号,如何从导出的python列表中删除逗号,引号和括号?

    You guys were super helpful with my last newbie question so I figured I would give it another shot Right now my Python 3
  • 基于范围的for循环

    一 基于范围的for循环 C 11 1 范围for的语法 2 范围for的使用条件 二 指针空值nullptr 一 基于范围的for循环 C 11 1 范围for的语法 对于一个有范围的集合而言 由程序员来说明循环的范围是多余的 有时候还会
  • 智能聊天机器人实现(源码+解析)

    前言 之前写了一篇 美女图片采集器 源码 解析 得到了众多朋友的支持 发现这样系列的教程还是挺受欢迎的 也激励我继续写下去 也在那一篇文章中提过 美女图片采集只是我先前那个完整APP中的一个功能罢了 还有其他几个比较好玩的尚未开源 之后有时
  • QWidgetAction实现鼠标滑过菜单项图标高亮显示

    需求是鼠标滑过菜单项时 菜单项的文字 icon以及子菜单的小箭头都要高亮显示 qss中只能设置item背景色 文字颜色以及子菜单小箭头的样式 icon的图片不能切换 另外曾经想过用indicator 对action setCheckable
  • Ubuntu18.04安装QT5

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 QT5是什么 二 安装包安装 1 下载安装包 2 安装QT5 3 运行 4 其他方式 总结 前言 最近在学习QT5 在Windows上的安装自然不必多说
  • 爬虫 — 反爬

    目录 一 UA 反爬 二 Cookie 验证与反爬 1 Cookie 简介 2 使用 Cookie 原因 3 Cookie 作用 3 1 模拟登录 3 2 反反爬 三 Referer 反爬 一 UA 反爬 UA User Agent 用户代
  • [机械]“重工业面临两大危机”——向文波(三一重工股份有限公司执行总裁)

    向文波 三一重工股份有限公司执行总裁 向文波是三一重工的掌门人 但深受徐工事件影响 他以业内的视角 适时地向中国重工业的改革发出一个警示信号 提出一个超越 抓大放小 国进民退 等传统国企改革的新命题 产业安全 引起了舆论与政府的重视 中国重

随机推荐

  • 2021.11.13-15总结

    将C语言文件相关的内容学完了 了解了文件相关的函数
  • linux网络管理

    一 网络接口 1 在Linux系统中 主机的网络接口卡通常称为网络接口 使用ifconfig命令来查看网络 2 eth0 是Linux系统中第一块以太网卡的名称 3 lo 是Linux系统中的 环回 网络接口 lo 并不代表真正的网络接口
  • 用户访问session分析-按session粒度进行数据聚合

    思路 之前模拟创建了两张表 user visit action 和 user info 对于user visit action表 1 通过用户传过来的指定日期范围内 从user visit action中查询出指定的用户访问数据 变成 ac
  • nginx根据url参数动态代理

    nginx根据url参数动态代理 请求url格式 其中参数proxy后面的url就是需要访问的真实地址 http localhost 9388 proxy http localhost 8038 Content layui font ico
  • 腾讯滑块识别-通用滑块识别

    遇到滑块问题 在写爬虫的时候 经常会遇到滑块问题 很多次都想过尝试如何攻破滑块 但是每次都没成功 除了最开始的极验滑块 当时通过原图和滑块图的对比 能够得出缺口坐标 但是随着极验 网易 腾讯滑块的更新 已经不能够找到原图了 下面给出滑块通杀
  • python的gui神器——gooey

    python的gui神器 gooey python自带的gui库 tkinter库 最近研究的gui库 gooey tkinter教程 tkinter GUI编程 gooey地址和教程 gooey 入门教程 python使用tkinter库
  • Android基础知识 - 内置SQLite数据库

    文章目录 SQLite数据库简单介绍 创建数据库 SQLiteOpenHelper类 简单概述 DatabaseTest项目 升级数据库 对表中的数据进行操作 添加数据 更新数据 删除数据 查询数据 使用SQL操作数据库 SQLite数据库
  • 03 xxl-job任务执行流程

    作业类型 xxl job支持七种作业类型 Bean GLUE Java GLUE Shell GLUE Python GLUE PHP GLUE Nodejs GLUE PowerShell 其中 GLUE类型作业都是在admin管理端编辑
  • Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束

    1 在HUDCanvas下新建Image ScreenFader 设置为全屏显示 且颜色设置为浅蓝 2 添加GameOverText 并设置Text参数 3 调整HUDCanvas顺序 与就是渲染顺序 4 初始化时 把GameOverTex
  • 用Eigen库练习代数运算方式以便后续对刚体旋转和移动做基础

    include
  • qt背景渐变色的效果

    background color qlineargradient spread pad x1 0 y1 0 x2 0 y2 1 stop 0 87CEFA stop 1 292F38 背景颜色 画线部分可以达到渐变的效果图
  • CentOS 下安装 Docker

    要求 要安装 Docker 我们需要 CentOS 7 及以上的发行版本 建议使用overlay2存储驱动程序 卸载已有 Docker 如果你已经安装过旧版的 Docker 可以先执行以下命令卸载旧版 Docker sudo yum rem
  • sqli-labs解题大法29 ~40

    Less 29 堆叠查询 在一条语句之后加上分号 然后接下一条语句 可以一次执行多条语句 order by 排序 可以 联合查询 可以 参考Less 1 Background 6 服务器 两层 架构 http www cnblogs com
  • Linux笔记

    Linux 基础笔记 Linux文件目录 目录 描述 Linux系统根目录 bin usr bin 可执行二进制文件的目录 如常用的命令ls tar mv cat等 boot 存放Linux系统启动时用到的一些文件 如Linux内核文件 b
  • OR EXISTS语句的优化方法

    OR EXISTS语句的优化方法 这库一直很空闲 但无意中看了一下 发现其中很多语句都很有问题 都是典型的OR问题语句 如果并发量大的话 CPU一下子就飙高了 OR语句一直是性能杀手 当存在一两个的时候一般可以用union和union al
  • nodejs打造cli工具

    nodejs打造cli工具 前言 项目先体验 可执行的node程序 项目实践 项目初始化 总结 前言 使用nodejs打造cli工具 本文意指通过实现一个简单的cli工具来了解nodejs可执行程序 而不是工程化具体的实现 本文适合node
  • 网络传输数据基本流程 详解

    我是目录 1 网络传输流程图 2 数据包的封装分用 3 不同网络环境中 网络数据传输流程 1 网络互联 2 局域网 3 广域网 1 网络传输流程图 2 两台计算机通过 TCP IP 协议通讯的过程如下所示 2 数据包的封装分用 3 不同网络
  • 【多目标优化算法】多目标蚱蜢优化算法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及详细文章讲解 1 概述 摘要本文从自然界中草蜢群的导航出
  • 如何用API下载从哥白尼气候数据中心ECWMF下载数据

    在此以ERA5的hourly数据 1 为例 ECWMF数据中心的界面用户友好度很高 在你选择相应的变量后会生API代码 复制到python编译器例如jupyter即可下载 以下为详细步骤 1 先注册成为用户 然后在网页上登陆 即可等到账户对
  • Apache相关的几个安全漏洞修复

    最近网站被扫描出几个漏洞 大部分都是apache配置引起的 在此记录一下怎么修复 1 检测到目标URL存在http host头攻击漏洞 头攻击漏洞 比较常见的漏洞 修复的方法也提供了 漏洞的详细描述 为了方便的获得网站域名 开发人员一般依赖