HTML5 push/replaceState 和 标签导致安全异常

2024-04-10

我有一个网站的测试版本,位于正常网站的子域中,例如:http://test.x.com http://test.x.com代替http://x.com http://x.com.

我用<base>标签将所有资源请求转换回原始域:

<base href="http://x.com/" />

在我实现 HTML5 Push/replaceState 支持之前,这种策略一直很有效。

现在,如果我在控制台中执行此语句:

history.pushState({}, "", "");

...然后我得到一个DOMException基于 WebKit 的浏览器中的对象:

code: 18
constructor: DOMExceptionConstructor
line: 2
message: "SECURITY_ERR: DOM Exception 18"
name: "SECURITY_ERR"
sourceId: 4839191928
__proto__: DOMExceptionPrototype

...以及 FireFox 4 中的此错误:

Security error" code: "1000

如果我删除<base>tag 并执行相同的语句,新的状态被推送,并且没有异常。

有几个问题:1)这种行为是安全风险还是错误? 2)是否有解决方法来防止异常,或者除了使用<base>标签可以完全回避这个问题吗?

感谢您的考虑。


这不是一个错误,你违反了同源政策 http://en.wikipedia.org/wiki/Same_origin_policy. ""是一个相对 URL,将被解析为'http://x.com/'自从你使用了<base> tag. http://x.com http://x.com与托管页面的域不同,这就是为什么这样做会违反同源策略。

使用指向资源的绝对 URLhttp://test.x.com/ http://test.x.com/在你的history.pushState()调用应该解决这个问题:

history.pushState({}, "", "http://test.x.com/");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5 push/replaceState 和 标签导致安全异常 的相关文章

  • Javascript:使用箭头键导航表格输入

    我正在为客户制作 HTML 成绩册 我使用 PHP 生成成绩册 然后输出一个 HTML 表 如下例所示 每个 td 包含一个带有 td
  • Javascript - 如何从 location.href 中删除域

    我需要使用 Javascript 从 location href 中删除域名 我有类似的链接 http localhost App User UserOrder aspx id 949abc91 a644 4a02 aebf 96da3ac
  • 如何在 ionic 应用程序中显示 pdf 文件而无需下载

    我所做的事情 在应用程序浏览器中使用 使用谷歌文档 使用的网页视图 所以我尝试了所有这些方法来使用 ionic 在 Android 设备中显示 pdf 文件 但没有用 我可以在所有这些方法中看到下载按钮 谁能告诉我如何在没有用户下载选项的情
  • HTML 电子邮件:表格还是 div?

    html 电子邮件通讯的 HTML CSS 是否需要采用表格格式 或者我可以使用 DIV 来保证它能够在跨电子邮件客户端上良好地显示吗 我下载了许多模板来看看它们是如何完成的 并以此为基础构建我自己的模板 它们似乎都使用表格 非常感谢任何见
  • 由于触摸事件上的类切换/高度变化而导致可点击区域错位

    如果您切换上方元素的高度 则触摸设备上的链接可点击区域会出现奇怪的行为 如果您运行以下代码片段 例如 将其保存在本地并使用 chrome 来模拟触摸事件 您会注意到哈希值 mylink在某些情况下 您没有点击红色链接区域 会将 url 添加
  • 如何使字形更大? (改变尺寸?)

    我想让地球字形更大 以便它覆盖页面的很大一部分 它是矢量图像 它不是在按钮或任何东西中 而是在按钮中 它只是孤独的 有没有办法做到这一点 div class jumbotron span class glyphicon glyphicon
  • 如何从办公文档迁移到基于现代网络技术的文档 - 欢迎建议

    目前 所有文档均基于 MS Office 如果您想集成某些功能 这将变得非常具有挑战性 然后您可以选择使用 VBA 或 VSTO 第一个不太舒服 第二个可能就像拿大锤敲碎坚果一样 简单的控件 隐藏文本或基本数学等简单的事情都可以通过 HTM
  • 如何处理触摸设备上的悬停效果

    我有以下代码 div img src http placehold it 350x150 div class link cont a href click here to see more info a div div div width
  • 调整表格上的列宽

    目前 如果表格的宽度不大于容器的宽度 我可以调整表格列的大小 我希望发生的是在调整列大小时表格的宽度增加 以便滚动条出现在表格下方 基本上允许我调整大小而不受容器宽度的限制 这是一个小提琴 https jsfiddle net thatOn
  • 为什么要打开重定向 URL?

    我一直在浏览 OWASP 前 10 个漏洞 以更深入地了解每种特定类型的漏洞 我已完成最后一项 未经验证的 URL 重定向 我了解这次攻击 我在 OWASP 中读到了有关此类网络钓鱼计划的内容 现在看来这一点是显而易见的 我很难理解为什么这
  • 元素特定区域的背景颜色

    我想要实现的是将悬停效果放在光标的位置上 像这样的东西 https drmportal com https drmportal com 这是一个小提琴 https jsfiddle net onnmwyhd https jsfiddle n
  • PHP DOMDocument 中 XML 内 HTML 表的 Xpath 查询

    我有一个具有以下树结构的 XML 文件
  • 如何删除空 html 标签(其中包含空格和/或其 html 代码)

    需要 preg replace 的正则表达式 这个问题没有在 另一个问题 中得到回答 因为并非我要删除的所有标签都不为空 我不仅要从 HTML 结构中删除空标签 还要删除包含换行符以及空格和 或其 html 代码的标签 可能的代码是 删除匹
  • svg 圆不是用 javascript 绘制的

    我一直在尝试使用 HTML 中的 javascript 来进行 svg 操作的 hello world 我编写了下面的代码 虽然它生成了正确的 html 但我在浏览器中没有看到任何输出 也没有看到任何错误
  • 相当于Outlook中的浮动

    我在尝试着float left一些表 但是刚刚遇到一个大问题 outlook不支持float 好吧 然后我尝试使用表格对齐等 但没有运气 桌子只是显示在彼此下方 而不是彼此并排 对此我们能做些什么吗 PS 它在其他设备上工作得很好 它只是
  • 使浮动div高度相同

    我有 2 个并排的 div 我预先不知道它们的高度 它根据内容而变化 有没有一种方法可以确保它们始终具有相同的高度 即使其中一个拉伸 仅使用 CSS 我做了一个小提琴来展示 我希望红色和蓝色的 div 高度相同 http jsfiddle
  • ECHO MYSQL 结果显示空白页 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我知道这一定很简单 但我做不到 我需
  • webrtc - 视频出现斑点,但它仍然是黑色的

    我使用 chrome 21 运行我的 webrtc 代码 如果我在同一个 chrome 中打开两个选项卡 然后打开其中包含 webrtc 代码的页面 一个选项卡用于发送视频流 一个选项卡用于接收视频流 效果很好 但是 如果我使用两种隐身模式
  • 如何在 JavaScript 中将样式属性重置为其 CSS 默认值?

    在 php 生成的页面上有几个这样的元素 td class defaultTDStyle style color userDefinedCustomColor td 因此有一个默认样式 我应用了几个额外的样式来覆盖 CSS 中定义的样式 有
  • Bootstrap 轮播中的 Href

    我一直在Interwebz上搜索 但似乎找不到答案 如何在轮播链接中添加 href 我尝试将 a 标签放在 h1 标签之外 但它破坏了滑块本身的功能 这是我的代码 div class col sm 12 div class carousel

随机推荐

  • 班级人数限制是多少?

    我想知道一个班级的人数限制是多少 我做了一个简单的测试 define CLS name other class name public name other a other b other c other d other e other f
  • Foldr1 的融合定律?

    For foldr我们有融合定律 if f是严格的 f a b and f g x y h x f y 对全部x y then f foldr g a foldr h b 如何发现 导出类似的定律foldr1 显然甚至不能采取相同的形式 考
  • Request.Url.Host 是否包含子域?

    例如对于mail google com 它会返回google com还是mail google com 我自己实际上无法测试 它确实包含子域 例如mail google com
  • 你能使用 CSS 设置输入图像的 src 吗?

    你能使用 CSS 设置输入图像的 src 吗 这必须在 IE 中工作 No 你所能做的就是定义一个background imageURL 但与正确的 URL 不同 img 在很多方面 为什么需要这个 也许有一个解决方法
  • AWS EMR S3DistCp: auxService:mapreduce_shuffle 不存在

    我通过 SSH 连接到 AWS EMR v5 4 0 实例 并且想要调用 s3distcp 这个链接 http docs aws amazon com emr latest ReleaseGuide UsingEMR s3distcp ht
  • 如何使用 JMX 远程连接到 Dataproc 上的 Spark 工作线程

    我可以通过添加以下内容来很好地连接到驱动程序 spark driver extraJavaOptions Dcom sun management jmxremote Dcom sun management jmxremote port 91
  • 为我的 webpack 文件设置基本路径

    使用时requirejs 我这样做 require config baseUrl scripts console log Starting require A B C mainFunction 我在谷歌上搜索如何设置 Webpack 的基本
  • Azure:启动远程调试器失败

    我根据以下教程在 Windows Azure 中部署了一个 Web 角色 http weblogs asp net scottgu archive 2013 10 22 windows azure announcing release of
  • 如何在Java配置类中设置Spring weaver选项?

    我正在使用 Spring AOP 和提供的默认值DefaultContextLoadTimeWeaver 我希望能够编织持久化实体 并且我知道我必须设置编织器选项 来自控制台的警告 warning javax types are not b
  • Ruby on Rails Helper 方法 - HTML 显示为纯文本

    我的 Rails 应用程序有一个辅助方法 它返回一个字符串 其中包含 Google 网上论坛订阅表单的 HTML 代码 不幸的是 它以纯文本的形式出现在页面上 我怎样才能强制它呈现为 HTML 提前致谢 你的助手的结果需要在 Rails 3
  • 如何减慢或停止 XNA 中的按键速度

    我已经开始使用 XNA 框架编写游戏 并且遇到了一些我不知道如何正确解决的简单问题 我使用Texture2D 显示菜单并使用键盘 或游戏手柄 更改所选的菜单项 我的问题是当前用于在菜单项之间切换的功能太快了 我可能会单击向下按钮 它会向下移
  • 任意类型说明符上的 Defmethod?

    我想做的是 defgeneric fn x defmethod fn x integer 1 Positive integer defmethod fn x integer 1 Negative integer 我想要一个可以与任意类型说明
  • 在 SwiftUI 中,如何添加循环视频作为全屏背景图像?

    我有一个大约 10 秒长的视频 我想在我的一个 SwiftUI 视图中作为全屏背景图像循环播放 我怎样才能实现这个 第一个想法是与 Swift 合作import AVFoundation 但不确定这是否是正确的道路 您可以使用AV框架系列和
  • Chrome 在使用位置粘性/固定时会切断重影图像

    我正在尝试使用 HTML5 拖放position fixed从位于屏幕左侧固定位置的菜单中拖动元素 以下代码在 Safari 和 Firefox 中运行良好 但当我在 Chrome 中尝试时 滚动后 从拖放 API 生成的 幽灵 图像不可见
  • Leaflet.js:如何从地图中删除多个图层

    我正在使用 Leaflet js 制作地图 现在我想从地图中删除添加的图层 通过单击输入 按钮 所有选中的复选框将更改为未选中 并且所有相应的图层将从地图中删除 要从地图中删除图层 需要该图层的 ID 该 id 等于相应复选框的 id 这就
  • 如何使用 mysqli 准备好的语句绑定 N 个参数?

    在旧的 mysql 代码中 我有一个完美运行的查询 如下所示 questioncontent isset GET questioncontent GET questioncontent searchquestion questioncont
  • 如何检测用户何时成功完成php中文件的下载

    我有一个处理文件下载请求的 php 页面 我需要能够检测文件何时已成功下载 如何才能做到这一点 也许有一些方法可以检测该客户端 然后向服务器发送确认 Thanks 编辑 通过句柄 我的意思是该页面正在执行以下操作 file var www
  • Android - 应用程序安装在 SD 卡上时内部存储与外部存储

    我有一个可以下载大量内容的应用程序 用户之间有所不同 但可能是 200mb 到 1GB 或更多 目前 我将所有这些内容保存在外部存储上 因为这可能是空间最多的区域 例如 SD 卡 这在大多数情况下都可以正常工作 但在某些情况下这不一定是理想
  • Clojure 是否有命名私有函数的约定?

    当我在 Clojure 中定义私有函数时 我通常使用 前缀作为视觉指示符 表明该函数不能在我的命名空间之外使用 例如 defn name let formatter formatter yyyy MM dd HH mm ss SSSS fo
  • HTML5 push/replaceState 和 标签导致安全异常

    我有一个网站的测试版本 位于正常网站的子域中 例如 http test x com http test x com代替http x com http x com 我用标签将所有资源请求转换回原始域 在我实现 HTML5 Push repla