替换/操作 url 中的“主机名”而不重定向到它

Posted

技术标签:

【中文标题】替换/操作 url 中的“主机名”而不重定向到它【英文标题】:replace/manipulate "hostname" in url without redirecting to it 【发布时间】:2021-11-04 22:23:56 【问题描述】:

有什么办法可以替换 url 中的主机名,但我不希望浏览器加载/重定向/打开替换的主机名,它应该只是在地址栏中显示它与它无关。

场景:

我正在测试一个网站(合法),我发现它只是检查 URL 中的 top.location.hostname,如果它等于 self.location.hostname,那么它的行为正常,否则它会引发警报,这就是我猜测的原因如果我可以替换地址栏中的主机名,可能会发生点击劫持

如果可以通过 JS 完成,那就太棒了,我可以在 iframe 域命中之前加载我的更改名称的脚本

【问题讨论】:

不是主机名。 History.replaceState() 可用于更改 URL 的路径,但出于安全原因不能更改来源。 这就是我需要知道的...网站没有启用 CORS 策略,因此服务器端没有问题,但在客户端应该有一些东西 【参考方案1】:

双帧是最早针对破坏帧的 javascript 的攻击之一。这对于所使用的确切代码来说总是非常主观的,但是您应该在此处检查是否有任何攻击相关。

https://owasp.org/www-pdf-archive//OWASP_AppSec_Research_2010_Busting_Frame_Busting_by_Rydstedt.pdf

如果这是一个专业的参与,我会提出这个问题,无论你是否可以绕过框架破坏器。 X-Frame-Options 是最强大的点击劫持缓解措施,并且永远不会依赖 JavaScript 来做到这一点。

【讨论】:

以上是关于替换/操作 url 中的“主机名”而不重定向到它的主要内容,如果未能解决你的问题,请参考以下文章

apache中的vhost重写规则-摆脱子域而不重定向

jquery:更改URL地址而不重定向? [复制]

如何让浏览器保存密码而不重定向?

Spring Security:会话过期而不重定向到过期网址?

当锚标记仅触发 jQuery 操作而不重定向用户时,替代 <a href="#">?

我想在提交时创建一个表而不重定向到 php 中的任何其他页面