zoukankan      html  css  js  c++  java
  • 提高安全性而在HTTP响应头中可以使用的各种响应头字段

    本文介绍在Web服务器做出响应时,为了提高安全性而在HTTP响应头中可以使用的各种响应头字段。由于部分浏览器中有可能对某些字段或选项不提供支持,所以在使用这些字段时请先确认客户端环境。

    X-Frame-Options

    该响应头中用于控制是否在浏览器中显示frame或iframe中指定的页面,主要用来防止Clickjacking(点击劫持)攻击。

    X-Frame-Options: SAMEORIGIN
    • DENY 禁止显示frame内的页面(即使是同一网站内的页面)
    • SAMEORIGIN 允许在frame内显示来自同一网站的页面,禁止显示来自其他网站的页面
    • ALLOW-FROM origin_uri允许在frame内显示来自指定uri的页面(当允许显示来自于指定网站的页面时使用)

    X-Content-Type-Options

    如果从script或stylesheet读入的文件的MIME类型与指定MIME类型不匹配,不允许读取该文件。用于防止XSS等跨站脚本攻击。

    X-Frame-Options: nosniff

    X-XSS-Protection

    用于启用浏览器的XSS过滤功能,以防止XSS跨站脚本攻击。

    X-XSS-Protection: 1; mode=block
    • 禁用XSS过滤功能
    • 启用XSS过滤功能

    Content-Security-Policy

    用于控制当外部资源不可信赖时不被读取。用于防止XSS跨站脚本攻击或数据注入攻击(但是,如果设定不当,则网站中的部分脚本代码有可能失效)。

    之前的字段名为X-Content-Security-Policy

    Content-Security-Policy: default-src 'self'
    • default-src 'self' 允许读取来自于同源(域名+主机+端口号)的所有内容
    • default-src 'self' *.example.com允许读取来自于指定域名及其所有子域名的所有内容

    X-Permitted-Cross-Domain-Policies

    用于指定当不能将“crossdomain.xml”文件(当需要从别的域名中的某个文件中读取Flash内容时用于进行必要设置的策略文件)放置在网站根目录等场合时采取的替代策略。

    X-Permitted-Cross-Domain-Policies: master-only
    • master-only 只允许使用主策略文件(/crossdomain.xml)

    Strict-Transport-Security

    用于通知浏览器只能使用HTTPS协议访问网站。用于将HTTP网站重定向到HTTPS网站。

    Strict-Transport-Security: max-age=31536000; includeSubDomains
    • max-age 用于修改STS的默认有效时间。
    • includeSubDomains 用于指定所有子域名同样使用该策略。

    Access-Control-Allow-Origin等CORS相关字段

    当使用XMLHttpRequest从其他域名中获取资源进行跨域通信时使用。

    Access-Control-Allow-Origin: http://www.example.com
    Access-Control-Allow-Methods: POST, GET, OPTIONS
    Access-Control-Allow-Headers: X-TRICORDER
    Access-Control-Max-Age: 1728000

    上述代码用于设定与“http://www.example.com”进行跨域通信处理,允许使用POST, GET, OPTIONS方法,在发送的请求头中添加X-TRICORDER字段,通信超时时间为1,728,00秒。

    X-Download-Options

    用于放置直接打开用户下载文件。

    X-Download-Options: noopen
    • noopen 用于指定IE 8以上版本的用户不打开文件而直接保存文件。在下载对话框中不显示“打开”选项。

    Set-Cookie

    用于设置Cookie。

    Set-Cookie: name=value; secure; HttpOnly
    • secure 只在进行HTTP通信时发送Cookie。
    • HttpOnly 指定不能从JavaScript脚本代码访问Cookie值。
    • 虽然path属性用于指定Cooki发送路径,但是不能被作为一种安全手段。
    • domain属性具有后方一致特性,出于安全考虑最好不要使用该属性,除非明确指定向多个域发送Cookie。

    Cache-Control

    指定浏览器的缓存方式,通过逗号分隔。

    Cache-Control: no-cache, no-store, max-age=0, must-revalidate
    • no-cache 指定服务器端不缓存数据。
    • no-store 指定不能在本地缓存中保存数据。
    • must-revalidate 指定服务器端可以缓存数据,但是必须对数据进行确认。
    • max-age=0表示不缓存。

    pragma

    用于与HTTP/1.0进行向后兼容的响应头字段,原本只被使用在客户端请求头中。与“Cache-Control: no-cache”结合使用。

    pragma: no-cache
    • no-cache 客户端要求所有中间服务器不能缓存数据。

    expires

    指定数据的有效时间。不希望缓存数据时可以将该字段值与Date字段值指定为相同值或者将该字段值指定为“-1”。

    expires: -1

    content-type

    指定实体内对象的媒体类型(MediaType)。在charset关键字中指定文字编码格式。

    content-type: text/html;charset=utf-8

    HTTP响应头的设定方法

    在Apache服务器中指定响应头时,需要在httpd.conf文件中将下述模块设定为有效状态。

    • LoadModule headers_module modules/mod_headers.so

    然后使用下述方法设定HTTP响应头。

    Header set HeaderFieldName "value"
    //例如
    Header set X-XSS-Protection "1; mode=block”

    本文转自:https://www.cnblogs.com/sunshq/p/4478488.html
  • 相关阅读:
    Oracle 按一行里某个字段里的值分割成多行进行展示
    Property or method "openPageOffice" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by
    SpringBoot 项目启动 Failed to convert value of type 'java.lang.String' to required type 'cn.com.goldenwater.dcproj.dao.TacPageOfficePblmListDao';
    Maven 设置阿里镜像
    JS 日期格式化,留作参考
    JS 过滤数组里对象的某个属性
    原生JS实现简单富文本编辑器2
    Chrome控制台使用详解
    android权限(permission)大全
    不借助第三方网站四步实现手机网站转安卓APP
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/12178254.html
Copyright © 2011-2022 走看看