gpt4 book ai didi

javascript - Frame-busting JavaScript 代码 - 执行顺序

转载 作者:行者123 更新时间:2023-11-30 10:16:29 26 4
gpt4 key购买 nike

我们的代码中存在一个问题,之前的开发人员试图对 frame-busting 采取预防措施(以停止点击劫持),我不太了解这个术语。总之,他们将以下代码放在我们所有 .aspx 页面的顶部,甚至不在其上方的 head 元素中。

<script type="text/javascript">    
if (self == top) {
var theBody = document.getElementsByTagName('body')[0]
theBody.style.display = "block"
} else {
top.location = self.location
}

显然这对安全很重要,问题是我们遇到了一个问题,因为上面的 theBody 是未定义的,因为 body 标签还没有加载。因此,为了停止 js 代码中断,我们将上述脚本剪切并粘贴到页面底部。这是一种修复。我们只是想知道这种方法是否使首先拥有代码的实际原因无效。谁能给我一些建议?

最佳答案

防止点击劫持最有效的方法是输出 X-Frame-Options具有合适值的响应 header ,例如 DENY:

X-Frame-Options: DENY

浏览器会对此进行检查,并根据该值阻止页面被加框。

Framebusting JavaScript 用作不支持 X-Frame-Options header (例如 IE7 及更低版本)的旧浏览器的后备。

至于你的 body 错误,body 元素只有在浏览器在 HTML 中解释它并在 DOM 中创建它之后才可用。这就是为什么您的代码在 body 标记之前执行时显示错误的原因。您必须询问开发人员为什么他们使用此代码将正文设置为 display:block。也许正文在您的 CSS 中默认为 display:none

关于javascript - Frame-busting JavaScript 代码 - 执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com