首页 > 其他分享 >HTTP协议安全头部的笔记

HTTP协议安全头部的笔记

时间:2023-12-30 20:34:02浏览次数:63  
标签:XSS HTTP Frame 笔记 头部 Security Options Transport

本文于2016年3月完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。


近日项目组对当前开发、维护的Web系统做了AppScan扫描,扫描的结果惨不忍睹,问题很多。报告中报到“缺乏HTTP安全头部”。之前对HTTP协议的安全头部了解不多,为了消除AppScan报告中的警告,同时做更多的了解,搜集了一些相关的资料,于是有了本篇汇总笔记。

HTTP协议的安全头部

安全是一个非常大的话题,比如下面提到的HTTP安全头部,每个都可以使用单独的文章来说明和介绍。但Jackie当前还处于Web开发的入门阶段,还谈不上什么心得体会,先把找到的文章罗列出来吧。

HTTP Strict Transport Security

对于企业级Web应用,最简单直接的方法是禁用HTTP访问方式,全站启用HTTPS协议的支持,省事也安全;不过对于大型网站而言,全站启用HTTPS会带来其它方面的工作,来自百度运维部的相关总结值得一看,如下。

X-Frame-Options

X-Content-Type-Options

X-XSS-Protection

Content-Security-Policy

caniuse上查询到的数据,IE系列的浏览器对CSP支持程度较低;由于我厂的用户主要还是使用IE系列的浏览器,因此暂时不需要启用支持。

如何增加安全头部

nginx的配置

网上有很多现成的资料,如下内容来自keakon的涂鸦馆,折腾了一下 nginx 配置

add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
add_header X-XSS-Protection "1; mode=block"; # XSS 保护
add_header Strict-Transport-Security: max-age=31536000; includeSubDomains

Tomcat的配置

大概是在7.0.63版本,Apache Tomcat引入了org.apache.catalina.filters.HttpHeaderSecurityFilter,用于增加对前述安全头部的支持,但并不完善;当前9.0.X版本中支持如下安全头部。

  • Strict-Transport-Security
  • X-Frame-Options
  • X-Content-Type-Options
  • X-XSS-Protection

如果使用7.0.63版本以后的Tomcat,可以修改$CATALINA_BASE/conf/web.xml文件,找到并取消如下Filter的配置。

<!--
    <filter>
        <filter-name>httpHeaderSecurity</filter-name>
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <async-supported>true</async-supported>
    </filter>
-->
<!-- 其它配置 -->
<!--
    <filter-mapping>
        <filter-name>httpHeaderSecurity</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
-->

如果使用低于7.0.63版本的Tomcat,可以使用org.apache.catalina.filters.HttpHeaderSecurityFilter类的最新代码编译、打包成扩展包,放在$CATALINA_BASE/lib路径下;同时在$CATALINA_BASE/conf/web.xml文件中增加上述配置。

org.apache.catalina.filters.HttpHeaderSecurityFilter提供了一些扩展配置,具体使用方法可以参考Apache Tomcat的官方文档

其它资料

标签:XSS,HTTP,Frame,笔记,头部,Security,Options,Transport
From: https://www.cnblogs.com/jackieathome/p/17936552.html

相关文章

  • HttpOnly的笔记
    HttpOnly是什么简单的说:HttpOnly是Cookie的属性;Web服务器通过为Cookie设置这个属性,告诉浏览器应当避免页面端的脚本访问对应Cookie的值,保证被Cookie承载的敏感信息不被恶意读取;Web服务器可以保存一些用户的敏感数据到Cookie中,实现比如SSO的功能;当然是否安全,光靠Web服务器设......
  • 【技术探讨】无线通信模块拉距测试,是否一定要带笔记本电脑?
     用户购买无线模块后,一般第一步就是进行拉距测试,通常是准备2个笔记本电脑,一部电脑是放在在办公室有人值守,另外一部电脑在外场,双方使用手机或微信进行实时沟通测试结果,对于Sub-G的无线模块通常通信距离较远可以达到公里级甚至数公里之远,而笔记本的续航时间通常是2-3个小时,很多用户......
  • HTTP协议安全头部X-Content-Type-Options引入的问题
    本文于2016年4月完成,发布在个人博客网站上。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。前段时间测试MM反馈了一个问题,在富文本编辑器里上传的图片无法正常呈现。因为Jackie在本机的环境上没有观察类似的现象,而恰好那天测试环境的某个重要配......
  • docker笔记之安装
    本文于2017年上半年完成,发布在个人博客网站上。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。最近由于工作关系,接触到了docker技术。为了对docker有更多的了解,于是花时间在家里的Windows10机器上准备了docker的运行环境,方便在业余时间学习新技......
  • Markdown学习笔记
    Markdown学习标题的运用井号加空格后面输入要输入的标题内容字体的运用前后两个星号*中间是字体【是加粗】前后三个星号中间是字体【是加粗并倾斜】*废弃线的运用前后是两个波浪线中间是字体。列:今天来学习养猪的知识~~~~引用的运通大于号加空格,用于引用他......
  • python学习笔记4(print复杂语法、input、注释、代码缩进)
    上一节学习了概述、开发工具、编写方法、print简单语法本节内容:(一)print复杂语法1、多条print输出到一行显示print('北京',end='---->')print('欢迎你')2、使用连接符连接多个字符串+不能连接数据值和其他类型print(192,168,1,1,sep='.')#多个字符串通过.间隔print('北京欢迎你'+'2......
  • 我的MySQL优化学习笔记
    我的MySQL优化学习笔记这是我自己的学习记录笔记,方便自己后续翻看,(如需要)也可共享出来供大家参考。一、优化概述1.优化的目的是什么?通过配置使现有的软件和硬件获得最佳性能【典型】寻求机会该进MySQL软件本身开发自己的存储引擎和硬件设备来扩展MySQL生态系统2.从哪里......
  • 《软件需求十步走》阅读笔记三
     开发因需求而来,需求开发以需求规划的成果为主要依据。软件需求开发首先要做的是获取需求,得到目标、系统关联情况以及用例的分析;其次是需求分析,软件系统的可行性、用户接口、系统功能、数据、优先级等这些都在需求分析之列;然后汇总成需求分析规格说明书;最后在进行需求测评,制定具......
  • system笔记
    system("pause")可以实现冻结屏幕system("CLS")可以实现清屏操作调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。例如,用system("color0A");其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6......
  • https初识
    1.服务器环境,两台服务器做前端代理,两台服务器做后端真实服务器。这里都是nginx代理服务器后端服务器172.16.5.50172.16.5.52172.16.5.51172.16.5.532、 后端两台服务器修改nginx配置文件:cd/etc/nginx/conf.dvimwww_hello80.conf###server{li......