📜  HTTP 标头 | X-XSS-保护

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

HTTP 标头 | X-XSS-保护

HTTP 标头用于通过 HTTP 响应或 HTTP 请求传递附加信息。 HTTP 标头中的 X-XSS-Protection 是一项在检测到 XSS 攻击时阻止页面加载的功能。随着站点内容安全策略的增加,此功能变得不必要。

XSS 攻击: XSS 代表跨站点脚本。在此攻击中,程序是绕过同源策略进入易受攻击的 Web 应用程序。当动态生成的 HTML 代码并且用户输入没有被过滤时,攻击者才可以使用这种攻击。在这种攻击中,攻击者可以将自己的 HTML 代码插入网页中,而浏览器不会检测到该代码。对于他自己的 HTML 代码,攻击者可以轻松获得对数据库和 cookie 的访问权限。为了阻止这种攻击,前几天使用了 X-XSS 保护。

句法:

X-XSS-Protection: directive

XSS 攻击类型:跨站脚本攻击大致分为两类。

  • 服务器 XSS:在这种类型的攻击中,黑客会在 HTML 响应中附加不受信任的数据。在这种情况下,服务器端存在漏洞,浏览器只运行响应中存在的脚本。
  • 客户端 XSS:在这种类型的 XSS 攻击中,不安全的 javascript 用于更新 DOM 数据。如果我们通过 javascript 调用在 DOM 中添加 javascript 代码,这样的 javascript 调用称为不安全的 javascript 调用。

指令:在此标头文件中,有四个指令:

  • 0:禁用 X-XSS-Protection。
  • 1:它是默认指令并启用 X-XSS-Protection。
  • 1个; mode=block:启用 X-XSS-Protection。如果浏览器检测到攻击,它将不会呈现页面。
  • 1个; report=启用 X-XSS-Protection。如果检测到跨站点脚本攻击,则该页面将被清理并由 report-uri 指令报告。

示例 1:在检测到反射的跨站点脚本攻击时阻止页面加载:

HTML
// It enable the protection
X-XSS-Protection: 1; mode=block
   
// It disable the protection
X-XSS-Protection: 0


HTML
 
  Header set X-XSS-Protection "1; mode=block" 


html
add_header "X-XSS-Protection" "1; mode=block";


示例 2:这将在 apache 服务器上运行。

HTML

 
  Header set X-XSS-Protection "1; mode=block" 

示例 3:这将在 Nginx 服务器上运行。

html

add_header "X-XSS-Protection" "1; mode=block";

支持的浏览器: HTTP header X-XSS-Protection支持的浏览器如下:

  • 谷歌浏览器
  • IE浏览器
  • 苹果浏览器
  • 歌剧