收藏一下~
可以收录到专辑噢~
HTTP 响应中的字符编码和 XSS 漏洞利用

引言
你是否注意到以下 HTTP 响应中的某些内容?
HTTP/1.1 200 OK
Server: Some Server
Content-Type: text/html
Content-Length: 1337
<!DOCTYPE html>
<html>
<head><title>Some Page</title></head>
<body>
...
根据这段 HTTP 响应,可以推测该 Web 应用程序可能容易受到 XSS 漏洞的影响。这个响应缺少一个关键属性:charset
,这是攻击者利用的关键点。通过更改浏览器假定的字符集,攻击者可以将任意JavaScript
代码注入网站。
字符编码
常见响应头
常见的 HTTP 响应头如下:
HTTP/1.1 200 OK
Server: Some Server
Content-Type: text/html; charset=utf-8
...
字符编码charset=utf-8
charset
:指定文本内容的字符编码。utf-8
:表示使用 UTF-8 编码,兼容 ASCII。
如果Content-Type
标头中缺少charset
属性,浏览器会在 HTML 文档中查找<meta>
标记中的charset
属性来确定编码方式,或者使用字节顺序标记(BOM)。
浏览器字符编码检测
当浏览器接收到 HTML 文档时,会根据以下优先级来确定字符编码:
HTML 文档开头的字节顺序标记(BOM)
Content-Type
标头中的charset
属性HTML 文档中的
<meta>
标记
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录