没有<meta chartset=<<"any-encoding">> />标签会存在安全漏洞吗?

4

我在某个地方读到过,声明字符集是一个好的实践方法。

 <meta charset="utf-8">

为了防止严重的安全风险,建议您定义文档的字符集。

如果某人未在HTML文档中定义字符集,可能会面临哪些风险?

1个回答

5

有一类XSS被称为UTF-7 XSS

在这种编码下,+ADw-呈现为<+AD4-呈现为>。这使得攻击者能够注入

+ADw-script+AD4-alert(document.location)+ADw-/script+AD4-

并让浏览器将其呈现和解释为:
<script>alert(document.location)</script>

旧版本的Internet Explorer会自动检测字符集。因此,如果在响应头或meta标签中没有指定字符集,那么像+ADw这样的序列输出会“欺骗”Internet Explorer使用UTF-7渲染页面,使得注入的脚本可以执行。这就导致了XSS漏洞。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接