📜  HTTP 标头 |仅公开密钥引脚报告

📅  最后修改于: 2022-05-13 01:56:38.383000             🧑  作者: Mango

HTTP 标头 |仅公开密钥引脚报告

HTTP Public-Key-Pins-Report-Only是一个响应标头,如果发生任何 pinning 违规,它将向标头中指定的报告 uri发送报告。
但是,与 Public-Key-Pins 不同,它仍然允许浏览器连接到服务器,并且如果违反了 pinning,则不会在屏幕上打印任何错误消息。

在阅读本文之前,您必须阅读 HTTP Public-Key-Pins 文章。

句法

Public-Key-Pins-Report-Only: pin - sha256 = "pin - value"; 
                                  max - age = expire - time; 
                                  includeSubDomains; 
                                  report - uri = "uri"

指令:

  • 销-sha256 =“销-值”
    该引脚用于为不同的公钥指定多个引脚。将来我们还可以使用除 SHA-256 之外的其他哈希算法。
  • 最大年龄 = 过期时间
    此指令未在 Public-Key-Pins-Report-Only 标头中使用,它将被用户代理忽略,也不会被缓存。
  • 包括子域
    此引脚指定站点的规则也适用于站点的子域。此参数是可选的。
  • 报告 – uri = “uri”
    此 pin 发送 pin 验证失败的报告。该参数也是可选的。

例子:

Public-Key-Pins-Report-Only:
    pin-sha256 = "cUPcTAZWKaASuYWhhneY3oBAkE3h2+soZS7sWs="; 
    pin-sha256 = "M8HztCzM3elS5P4hhyBNf6lHkmjAHKhpGPWE="; 
    includeSubDomains; 
    report-uri = "https://www.geeksforgeeks.org/hpkp-report"

在本例中,First pin pin-sha256 = “cUPcTAZWKaASuYWhhneY3oBAkE3h2+soZS7sWs=”是生产环境中使用的服务器公钥。

第二个引脚pin-sha256 = “M8HztCzM3elS5P4hhyBNf6lHkmjAHKhpGPWE=”用作备份密钥。

第三个 pin includeSubDomains表示该密钥对所有子域都有效。

最后一个 pin report-uri = “https://www.geeksforgeeks.org/hpkp-report”解释了在哪里报告 pin 验证失败。

浏览器兼容性:

  • 谷歌浏览器
  • 歌剧
  • 火狐
  • IE浏览器
  • 微软边缘
  • 苹果浏览器