JavaScript - 跨站脚本 - 权限被拒绝

2024-02-19

我有一个 Web 应用程序,我正在尝试使用 Twitter 的 OAuth 功能。该应用程序有一个链接,提示用户输入 Twitter 凭据。当用户单击此链接时,将通过 JavaScript 打开一个新窗口。该窗口用作对话框。这是这样完成的:

主页:

<div id="promptDiv"><a href="#" onclick="launchDialog('twitter/prompt.aspx');">Provide Credentials</a></div>

...

function launchDialog(url) {
  var specs = "location=0,menubar=0,status=0,titlebar=0,toolbar=0";
  var dialogWindow = window.open(url, "dialog", specs, true);
}

当用户单击该链接时,他们会从prompt.aspx 页面重定向到Twitter 网站。在 Twitter 网站上,用户可以选择输入其 Twitter 凭据。当他们提供凭据后,他们会被重定向回我的网站。这是通过回调 URL 来完成的,该 URL 可以为 Twitter 站点上的应用程序设置。

当回调发生时,用户将被重定向到对话窗口中我网站上的“/twitter/confirm.aspx”。发生这种情况时,我想更新“promptDiv”的内容以显示“您已成功连接 Twitter”以替换链接并关闭对话框。这样做的目的是通知用户他们已成功完成此步骤。我可以成功关闭对话框窗口。但是,当我尝试更新 HTML DOM 时,收到一条错误消息“错误:获取属性 Window.document 的权限被拒绝”。为了尝试更新 HTML DOM,我尝试在“/twitter/confirm.aspx”中使用以下脚本:

// Error is thrown on the first line.
var confirmDiv = window.opener.document.getElementById("confirmDiv");
if (confirmDiv != null)
{
  // Update the contents
}                
window.close();

然后我尝试读取 HTML,看看是否可以通过以下脚本访问 DOM:

alert(window.opener.document.body.innerHTML);

当我尝试这样做时,我仍然收到“权限被拒绝”错误。我知道这与跨站点脚本有关。但是,我不知道如何解决。我该如何解决这个问题?我的申请结构是否不正确?用户重定向回我的网站后,如何更新 HTML DOM?

感谢您的帮助!


当弹出窗口打开 Twitter 身份验证页面时,您将失去与 winodw 通信的原始能力,因为它的文档域已更改并且 window.opener 已重置。

为了解决 SitePen 的 NetFlix Queued 问题,我使用了计时器并轮询弹出窗口以了解其位置的更改(您可以继续访问)。如果它进入错误页面或成功页面,我知道并且可以关闭弹出窗口(您可以控制窗口,但不能控制 DOM)并更改主页中的内容以反映授权状态。

我们还检查了窗口关闭情况 - 在用户未授权并关闭弹出窗口的情况下。

我们无法使用回调,因为这是在 Adob​​e AIR 中完成的,并且没有可以“回调”的服务器,这造成了额外的障碍。

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

JavaScript - 跨站脚本 - 权限被拒绝 的相关文章

随机推荐

  • 如何在禁用组框时禁用组框文本?

    我面临组框文本的问题 我通过调用 EnableWindow FALSE 禁用了组框 问题是组框标题没有变灰 谁能告诉我为什么会发生这种情况以及如何摆脱这个问题 这似乎是 comctrl32 dll 中的一个错误视觉风格 https lear
  • 当应用程序在后台时,iPhone PresentLocalNotificationNow 不会触发警报和声音

    我有一个应用程序注册位置更新 运行测试 有时当我在应用程序处于后台时进入某个区域时 我会收到带有声音的警报通知 有时我只在通知中心看到通知 而没有收到任何声音和警报 您可以做什么来始终收到声音和警报通知 这就是我的看法 UILocalNot
  • android Rect.intersect 始终为 false

    士兵级 centerX speedX r set centerX centerY 50 50 子弹级 centerX speedX r set centerX centerY 50 50 if Rect intersects r GameS
  • MVC 中的 ViewModel 和与实体框架的一对多关系?

    我有一个用于在数据库中存储有关顾问的信息的应用程序 该模型是一个实体框架模型 数据库表与许多其他表 工作经验 计划 能力区域等 具有一对多关系 现在 当我想在视图中创建一个新的 Consultant 对象时 我实际上只想将 Consulta
  • 如何仅使用串行控制台将二进制闪存文件发送到嵌入式系统?

    我有一个使用 ramdisk 启动的嵌入式 Linux 系统 因此它运行时没有可用的持久存储 它有闪存来存储内核和 ramdisk 唯一的连接是 RS 232 串行登录控制台 所以我受到其内置 busybox 提供的功能的限制 我想检索 r
  • UILabel 文本在更新时重叠?

    在我的应用程序中 我将文本标签的值从初始值 0 更改为触摸事件时递增 有时 但并非总是如此 新值会覆盖在 0 上 这并不酷 这是相关代码 UITableViewCell cell tableView cellForRowAtIndexPat
  • 在 C++ 中获取文本 CSV 文件中的字符串

    我有一个这样的大型 CSV 75 MB 1 3 4 1 5 4 2 4 0 1 11 3 我用这段代码存储我的数据 C风格 include
  • 如何保护 Laravel 环境文件中存储的数据库凭据的安全?

    我最近切换到基于环境的 Laravel 应用程序部署 并决定使用 ENV 将本地和生产服务器的凭据存储在 env 文件中 但是我发现打开调试时会抛出异常显示公开数据库凭据的环境变量 现在我确信调试将始终在生产中关闭 因为这是我的默认设置 然
  • Firebase - 获取用户时权限被拒绝

    我正在尝试使用此代码从 Firebase 数据库中获取用户 但出现此错误 取消错误错误域 com firebase代码 1 权限被拒绝 UserInfo NSLocalizedDescription 权限被拒绝 我的规则应该如何设置 这是代
  • 清单的 Robolectric @Config 路径值

    我正在尝试运行 robolectric 单元测试 但收到错误 因为在路径上找不到 AndroidManifest xml 任何人都可以给我一个 Config 清单值的示例路径 是相对路径还是绝对路径 提前致谢 如果您使用 Maven 来运行
  • Java - 复制 JPG 同时保留所有文件属性

    在保持文件所有属性 创建日期 日期等 的同时移动 复制文件的最佳方法是什么 谢谢 如果您使用的是 Java 7 请使用java nio file Files copy Path source Path target CopyOption o
  • jsp页面多语言支持

    在JSP页面中使用上述指令时 无法在JSP页面中显示俄语和匈牙利语字符 有没有办法在同一个JSP页面中支持俄语和匈牙利语字符 如果我使用charset UTF8 好吧 或者还有其他办法吗 ISO 8859 1 字符集支持only列出的字符h
  • 检测 Windows 字体大小(100%、125% 和 150%)

    我创建了一个应用程序 该应用程序在用户选择 125 或 150 之前都可以完美运行 这会破坏我的申请 后来我找到了通过检测DPI来找到字体大小的方法 在使用中文版 Windows 7 的用户开始使用我的应用程序之前 这种方法一直运行良好 整
  • python在函数中存储变量并稍后使用它[重复]

    这个问题在这里已经有答案了 是否可以将 while 循环中的变量存储到函数中 然后在循环结束时从函数中调用同一变量 例如 在 while 循环期间 这里的问题是 当我尝试从 store 检索变量时 它失败了 因为它需要传递参数 def st
  • 如何取消长时间运行的数据库操作?

    目前正在与 Oracle 合作 但还需要 MS SQL 的解决方案 我有一个 GUI 允许用户生成将在数据库上执行的 SQL 这可能需要很长时间 具体取决于它们生成的搜索 我希望 GUI 应用程序在此搜索期间做出响应 并且希望用户能够取消搜
  • 如何在 C# 表达式树中设置字段值?

    Given FieldInfo field
  • Marshmallow 中的存储权限错误

    在 Lollipop 中 下载功能在我的应用程序中运行良好 但当我升级到 Marshmallow 时 当我尝试从互联网下载到 SD 卡时 我的应用程序崩溃并给出此错误 Neither user nor current process has
  • Amazon Cognito:从浏览器重定向到 Android 应用程序时如何停止出现“redirect_mismatch”错误

    我正在尝试创建一个 Android 项目 通过让用户在浏览器中登录 Amazon Cognito 来授权用户 然后应该重定向回我的应用程序 不幸的是 当浏览器打开时 我没有到达正确的登录页面 而是不断收到此错误 在我的 Authentica
  • 如何使用 Kobo API 将数据发布到 kobotoolbox 表单?

    我正在使用 kobo REST API 我可以从表单中获取结构信息并通过 API 提交数据 但是当我尝试通过 POST 服务将数据发送到表单时 kobo 返回以下消息 您的例如 数据尚未提交 有没有办法使用其 API 将 POST 数据发送
  • JavaScript - 跨站脚本 - 权限被拒绝

    我有一个 Web 应用程序 我正在尝试使用 Twitter 的 OAuth 功能 该应用程序有一个链接 提示用户输入 Twitter 凭据 当用户单击此链接时 将通过 JavaScript 打开一个新窗口 该窗口用作对话框 这是这样完成的