等保检测风险处理方案
文章目录
- 等保检测风险处理方案
- 1. Apache HTTP Server "httpOnly" Cookie信息泄露漏洞(CVE-2012-0053))
- 2. 检测到目标web应用表单存在口令猜测攻击
- 3. X-Content-Type-Options响应头缺失
- 4. X-XSS-Protection响应头缺失
- 5. Content-Security-Policy响应头缺失
- 6. Referrer-Policy响应头缺失
- 7. X-Permitted-Cross-Domain-Policies响应头缺失
- 8. X-Download-Options响应头缺失
- 9. X-Frame-Options未配置
- 10. Strict-Transport-Security响应头缺失
- 11. 会话cookie中缺少HttpOnly属性
- 12. 服务器版本信息泄露
- 13. 备份文件或敏感目录泄露
 
等保检测风险处理方案
- 该方案仅针对 PHP 相关业务,其他服务端语言未实践,可作为参考。
- 关于请求头漏洞风险相关的配置,都写在 index.php 入口文件中(由于写在 nginx 配置文件中无作用),后续有新增漏洞风险会持续补充。
- 请求头相关配置如下(目录1-11)header("X-Content-Type-Options: nosniff"); header("X-XSS-Protection: 1"); header("Content-Security-Policy: script-src '*', unsafe-inline, unsafe-eval"); header("Referrer-Policy: origin"); header("X-Permitted-Cross-Domain-Policies: none"); header("X-Download-Options: noopen"); header("X-Frame-Options: SAMEORIGIN"); header("Strict-Transport-Security: max-age=15552000"); header("Set-Cookie: Path=/, HttpOnly, Secure");
1. Apache HTTP Server “httpOnly” Cookie信息泄露漏洞(CVE-2012-0053))
- 风险等级:中危
- 漏洞建议:目前厂商已发布升级补丁以修复漏洞,详情请关注厂商主页:http://svn.apache.org/viewvc?view=revision&revision=1235454
- 处理方案:升级apache/卸载apache
- 说 明:升级服务器上安装的apache版本到最新版本后,依然有此问题,怀疑检测机制有问题,直接卸载了apache(未用到该服务),对方依然表示能检测到该问题,无解,遂告知他们已卸载,协商后,检测机构通过了该风险检测。
2. 检测到目标web应用表单存在口令猜测攻击
- 风险等级:低危
- 漏洞建议:在登录界面添加验证码防止口令猜测,或添加ip锁定
- 处理方案:登录页面新增图形验证码或其他验证码验证方式(目的是增加密码猜测复杂度)
- 说 明:无
3. X-Content-Type-Options响应头缺失
- 风险等级:低危
- 漏洞建议:将您的服务器配置为在所有传出请求上发送值为“nosniff”的“X-Content-Type-Options”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html\r\n
- 处理方案:header(“X-Content-Type-Options: nosniff”);
- 说 明:无
4. X-XSS-Protection响应头缺失
- 风险等级:低危
- 漏洞建议:将您的服务器配置为在所有传出请求上发送值为“1”(例如已启用)的“X-XSS-Protection”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html\r\n
- 处理方案:header(“X-XSS-Protection: 1”);
- 说 明:无
5. Content-Security-Policy响应头缺失
- 风险等级:低危
- 漏洞建议:将您的服务器配置为发送“Content-Security-Policy”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html\r\n
- 处理方案:header(“Content-Security-Policy: script-src ‘*’, unsafe-inline, unsafe-eval”);
- 说 明:无
6. Referrer-Policy响应头缺失
- 风险等级:低危
- 漏洞建议:1)修改服务端程序,给 HTTP 响应头加上 Referrer-Policy 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(“Referrer-Policy”, “value”) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(“Referrer-Policy: value”) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader “Referrer-Policy”, “value” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[“Referrer-Policy”] = “value” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[“Referrer-Policy”] = “value”; 2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Referrer-Policy 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Referrer-Policy value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add Referrer-Policy “value”。\r\n
- 处理方案:header(“Referrer-Policy: origin”);
- 说明:无
7. X-Permitted-Cross-Domain-Policies响应头缺失
- 风险等级:低危
- 漏洞建议:1)修改服务端程序,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(“X-Permitted-Cross-Domain-Policies”, “value”) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(“X-Permitted-Cross-Domain-Policies: value”) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader “X-Permitted-Cross-Domain-Policies”, “value” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[“X-Permitted-Cross-Domain-Policies”] = “value” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[“X-Permitted-Cross-Domain-Policies”] = “value”; 2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Permitted-Cross-Domain-Policies value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Permitted-Cross-Domain-Policies “value”。\r\n
- 处理方案:header(“X-Permitted-Cross-Domain-Policies: none”);
- 说 明:无
8. X-Download-Options响应头缺失
- 风险等级:低危
- 漏洞建议:1)修改服务端程序,给 HTTP 响应头加上 X-Download-Options 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(““X-Download-Options””, ““value””) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(““X-Download-Options: value””) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader ““X-Download-Options””, ““value”” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[““X-Download-Options””] = ““value”” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[““X-Download-Options””] = ““value””;\n2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Download-Options 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Download-Options value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Download-Options ““value””。
- 处理方案:header(“X-Download-Options: noopen”);
- 说 明:无
9. X-Frame-Options未配置
- 风险等级:低危
- 漏洞建议:" 修改web服务器配置,添加X-Frame-Options响应头。赋值有如下三种:\n1、DENY:不能被嵌入到任何iframe或者frame中。\n2、SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。\n3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。\n例如:\napache可配置http.conf如下:\n\n Header always append X-Frame-Options ““DENY””\n\n\nIIS可配置相关网站的Web.config如下:\n<system.webServer>\n …\n\n \n \n <add name=““X-Frame-Options”” value=““deny”” />\n \n \n\n …\n</system.webServer>"\r\n
- 处理方案:header(“X-Frame-Options: SAMEORIGIN”);
- 说 明:无
10. Strict-Transport-Security响应头缺失
- 风险等级:低危
- 漏洞建议:“1)修改服务端程序,给 HTTP 响应头加上 Strict-Transport-Security 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(”“Strict-Transport-Security”“, ““value””) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(”“Strict-Transport-Security: value”“) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader ““Strict-Transport-Security””, ““value”” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[”“Strict-Transport-Security”“] = ““value”” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[”“Strict-Transport-Security”“] = ““value””;\n2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Strict-Transport-Security 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Strict-Transport-Security value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add Strict-Transport-Security ““value””。”\r\n
- 处理方案:header(“Strict-Transport-Security: max-age=15552000”);
- 说 明:无
11. 会话cookie中缺少HttpOnly属性
- 风险等级:低危
- 漏洞建议:向所有会话cookie中添加“HttpOnly”属性。 Java示例: HttpServletResponse response2 = (HttpServletResponse)response; response2.setHeader( “Set-Cookie”, “name=value; HttpOnly”); C#示例: HttpCookie myCookie = new HttpCookie(“myCookie”); myCookie.HttpOnly = true; Response.AppendCookie(myCookie); VB.NET示例: Dim myCookie As HttpCookie = new HttpCookie(“myCookie”) myCookie.HttpOnly = True Response.AppendCookie(myCookie)\r\n
- 处理方案:header(“Set-Cookie: Path=/, HttpOnly, Secure”);
- 说 明:无
12. 服务器版本信息泄露
- 风险等级:低危
- 漏洞建议:1.隐藏响应的server版本信息\n2.隐藏响应的X-Powered-By版本信息
- 处理方案: - 服务端语言为PHP时,隐藏 PHP 版本
 编辑PHP配置文件php.ini,找到 expose_php On 改成 expose_php Off,保存并退出,重启php-fpm。
- Web服务器为NGINX时,隐藏NGINX版本
 编辑NGINX配置文件nginx.conf,加入以下一行配置
 保存并退出,重启nginx服务。server_tokens off;
- Web服务器为apache时,隐藏apache版本
 编辑apache配置文件httpd.conf或apache2.conf,加入以下两行配置:
 保存并退出,重启apache服务。ServerTokens Prod ServerSignature Off
 
- 服务端语言为PHP时,隐藏 PHP 版本
- 说 明:无
13. 备份文件或敏感目录泄露
- 风险等级:低危
- 漏洞建议:1、禁止在网站目录下存放网站备份文件或包含敏感信息的文件。\n2、如需存放该类文件,对文件名、目录进行鉴权处理。
- 处理方案:针对域名对应的nginx配置文件,在server{}内加入如下内容(根据检测出的文件名称进行配置,不一定是composer.json和LICENSE):#composer.json文件 location ^~ /composer.json {return 404; } #LICENSE文件 location ^~ /vendor/composer/LICENSE {return 404; }
- 说 明:无
相关文章:
等保检测风险处理方案
文章目录等保检测风险处理方案1. Apache HTTP Server "httpOnly" Cookie信息泄露漏洞(CVE-2012-0053))2. 检测到目标web应用表单存在口令猜测攻击3. X-Content-Type-Options响应头缺失4. X-XSS-Protection响应头缺失5. Content-Security-Policy响应头缺失6. Referrer…...
 
java 包装类 万字详解(通俗易懂)
前言简介和溯源拆装箱String类和基本类型的相互转化String类和包装类型的相互转化八大包装类的常用方法汇总(含代码演示)一、前言 : 本节内容是我们《API-常用类》专题的最后一节了。本节内容主要讲包装类,内容包括但不限于包装类的诞生&…...
 
为什么我复制的中文url粘贴出来会是乱码的? 浏览器url编码和解码
为什么我复制的中文url粘贴出来会是乱码的? 浏览器url编码和解码 Start 番茄最近涉及到一些和单点登录相关的业务需求,在实现功能的过程中,难免少不了和 url 打交道。但是在打交道的过程中,遇到一个痛点:明明我复制的…...
 
移动端适配
 是看的b站一个老哥的视频,做的汇总,讲的嘎嘎棒。视频链接:b站链接 视口viewport pc端视口就是可视化的窗口,不包含浏览器工具栏但是移动端,不太一样,布局的视口和可见的视口是不太一样的 移动端的网页…...
 
【FPGA】Verilog:时序电路应用 | 序列发生器 | 序列检测器
前言:本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:序列发生器与序列检测器  功能特性: 采用 Xilinx Artix-7 XC7A35T芯片 配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度 存储器…...
 
Biomod2 (下):物种分布模型建模
这里写目录标题1.给出一个线性回归模型并求出因子贡献度2.biomod22.1 pseudo-absences:伪不存在点(PA)2.1.1 random2.2.2 disk2.2.3 user.defined method3.使用网格划分区域3.1 计算质心4. 完整案例1.给出一个线性回归模型并求出因子贡献度 ##---------…...
 
Linux性能学习(2.2):内存_进程线程内存分配机制探究
文章目录1 进程内存分配探究1.1 代码1.2 试验过程2 线程内存分配探究2.1 代码2.2 试验过程3 总结参考资料:1. 嵌入式软件开发杂谈(3):Linux下内存与虚拟内存2. 嵌入式软件开发杂谈(1):Linux下最…...
 
BPMN2.0规范及流程引擎选型方案
BPMN2.0规范及流程引擎选型方案一、基本概念二、BPMN意义三、主要元素3.1 活动任务子流程调用活动事件子流程事务3.2 网关排他网关包容网关并行网关事件网关3.3 事件开始事件结束事件中间事件3.4 辅助泳道图注释与组数据存储四、图类型4.1 编排图4.2 会话图五、技术选型5.1 前端…...
 
VMware虚拟机安装Linux教程
前言 本文小新为大家带来 VMware虚拟机安装Linux教程 ,后边将为大家分享Linux系统的相关知识与操作,在此之前的第一步我们需要在我们的电脑上搭建好一个Linux系统的环境,本文的具体内容包括VMware虚拟机软件安装与Linux系统安装~ 不积跬步&a…...
 
多人协作|RecyclerView列表模块新架构设计
多人协作|RecyclerView列表模块新架构设计多人协作设计图新架构设计与实现设计背景与新需求新架构设计多人协作设计图 根据产品设计,将首页列表即将展示内容区域,以模块划分成多个。令团队开发成员分别承接不同模块进行开发,且互不影响任务开…...
SpringBoot (六) 整合配置文件 @Value、ConfigurationProperties
哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮 有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。 1 使用 Value 注解 /** Auth…...
 
docker 入门篇
docker为什么会出现? 一款产品:开发---->运维,两套环境!应用环境,应用配置! 常见问题:我的电脑可以运行,版本更新,导致服务不可用。 环境配置十分的麻烦,…...
MapReduce的shuffle过程详解
shuffle流程概括 因为频繁的磁盘I/O操作会严重的降低效率,因此“中间结果”不会立马写入磁盘,而是优先存储到Map节点的“环形内存缓冲区”,在写入的过程中进行分区(partition),也就是对于每个键值对来说&a…...
 
【软件使用】MarkText下载安装与汉化设置 (markdown快捷键收藏)
一、安装与汉化 对版本没要求的可以直接选择 3、免安装的汉化包 1、下载安装MarkText MaxText win64 https://github.com/marktext/marktext/releases/download/v0.17.1/marktext-setup.exe 使用迅雷可以快速下载 2. 配置中文语言包 中文包下载地址:GitHub - chi…...
LeetCode笔记:Biweekly Contest 99
LeetCode笔记:Biweekly Contest 99 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接:https://leetcode.com/contest/biweekly-contest-99 1. 题目一…...
初探富文本之CRDT协同实例
初探富文本之CRDT协同实例 在前边初探富文本之CRDT协同算法一文中我们探讨了为什么需要协同、分布式的最终一致性理论、偏序集与半格的概念、为什么需要有偏序关系、如何通过数据结构避免冲突、分布式系统如何进行同步调度等等,这些属于完成协同所需要了解的基础知…...
 
团队死气沉沉?10种玩法激活你的项目团队拥有超强凝聚力
作为项目经理和PMO,以及管理者最头疼的是团队的氛围和凝聚力,经常会发现团队死气沉沉,默不作声,你想尽办法也不能激活团队,也很难凝聚团队。这样的项目团队你很难带领大家去打胜仗,攻克堡垒。但是如何才能避…...
Spring三级缓存核心思想
spring在启动时候,会创建bean,并给bean填充属性,这事会使用到三级缓存 private final Map<String, Object> singletonObjects new ConcurrentHashMap<>(256); //一级缓存private final Map<String, Object> earlySingleto…...
 
深度学习算法训练和部署流程介绍--让初学者一篇文章彻底理解算法训练和部署流程
目录 1 什么是深度学习算法 2 算法训练 2.1 训练的原理 2.2 名词解释 3 算法C部署 3.1 嵌入式终端板子部署 3.3.1 tpu npu推理 3.3.2 cpu推理 3.2 服务器部署 3.2.1 智能推理 3.2.2 CPU推理 1 什么是深度学习算法 这里不去写复杂的概念,就用通俗的话说…...
 
计算机网络整理
TCP与UDP 介绍 HTTP:(HyperText Transport Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。 TCP:(Transmission Contro…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
 
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
 
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
 
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
 
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
 
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
