Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提高第三方应用程序的可用性_Javascript_Html_Security_User Interface_Knockout.js - Fatal编程技术网

Javascript 提高第三方应用程序的可用性

Javascript 提高第三方应用程序的可用性,javascript,html,security,user-interface,knockout.js,Javascript,Html,Security,User Interface,Knockout.js,我们使用的第三方应用程序引起了很多问题,因为用户在单击启动按钮之前没有单击注册按钮,或者如果他们确实先单击注册,此详细信息页面包含注册和启动按钮,可刷新并转到其投资组合。然后,他们必须在他们的投资组合列表中重新找到该项目 我认为第三方应用程序是.NET,使用knockout.js,不允许嵌入框架 为用户提供指导或理想情况下减少此过程的痛苦有哪些选项 我希望提供一个内部网页,只需单击一个按钮即可发送请求和启动操作。我发布了一个早期的问题,但无法找到工作 在SO上似乎有很多类似的问题,但我不确定这些

我们使用的第三方应用程序引起了很多问题,因为用户在单击
启动
按钮之前没有单击
注册
按钮,或者如果他们确实先单击
注册
,此详细信息页面包含
注册
启动
按钮,可刷新并转到其投资组合。然后,他们必须在他们的投资组合列表中重新找到该项目

我认为第三方应用程序是.NET,使用knockout.js,不允许嵌入框架

为用户提供指导或理想情况下减少此过程的痛苦有哪些选项

我希望提供一个内部网页,只需单击一个按钮即可发送
请求
启动
操作。我发布了一个早期的问题,但无法找到工作

在SO上似乎有很多类似的问题,但我不确定这些问题/答案是否用于自动点击自给自足的应用程序上的按钮,因为如果从第三方应用程序之外(我甚至可以访问他们的视图模型吗?)。此应用程序阻止将其嵌入帧中

  • 目前,我有一个来自内部网站的链接,可以并排打开两个浏览器窗口。一个转到第三方和第二个窗口,并提供说明。这没关系,但我们发现人们不想读书。我真的很想有一个单一的按钮点击或至少能够发送一个请求在一个时间从内部网页。或者,如果可能的话,在他们的网站上覆盖一个游乐设施类型的指南

这是第三方按钮代码

    <a class="btn btn-large btn-blue" href="javascript:void(0);" 
    data-bind="click: $root.clickAction.bind($data, ActionType)">
    <span data-bind="text: Title">Register</span></a>

你基本上是想攻击第三方应用程序,但你控制着环境,所以这听起来不是不可能的。(我不会谈论我是否认为这是一个好主意,我只会列出一些您可能有的选择。)

卸下X-Frame-Options标头 您是说第三方应用程序不允许嵌入框架中。这是通过响应头完成的,很可能是
X-Frame-Options
(也可以是
Content-Security-Policy:Frame-prevenents
,但实际上并不重要)。你所要做的就是删除标题,瞧,应用程序可以在一个框架中加载

要删除标头,需要某种代理。如果应用程序是在普通http上提供的,那么这真的很容易,任何类型的http代理都可以删除相应的响应头。如果它是通过https提供的,您必须做一些事情才能真正使其工作(创建一个证书颁发机构,将根证书作为受信任的根添加到客户端,使用代理连接到应用程序,除了删除头之外,还必须用您自己的证书替换https证书,然后这些证书将在您的客户端上受信任)

请注意,这将削弱第三方应用程序的安全性,并使其容易受到类似于(以及诸如此类的所有与帧相关的攻击)的攻击

通过代理插入自定义脚本(编辑:稍后添加) 使用如上所述的代理,您不需要删除
X-Frame-Options
。最好将您自己的javascript注入到第三方应用程序页面,该页面可以在原始页面上执行任何您想要的操作,因为它可以完全访问应用程序DOM。例如,它可以更改行为,以便单击相应的按钮。:)如果我不能在客户端上安装浏览器扩展,我会这样做(见下文)

使用自定义客户端 不使用浏览器作为客户端,您可以使自定义客户端实际上充当浏览器,但忽略上述标题。这也可以做点击你想要没有太多麻烦。缺点是用户必须启动自定义客户端,而不是使用浏览器来使用应用程序。在拥有Xamarin和WKWebView等功能的移动环境中,这可能更容易实现

浏览器扩展
自定义浏览器思想的一个更简单、可能更可行的变体是浏览器扩展。它可以在应用程序url上激活,并且可以很容易地在适当的页面上进行所需的单击(浏览器扩展可以请求对页面的完全访问,而不考虑标题)。您只需在客户端上安装一次扩展。如果有必要的话,我可能会这样做。

恐怕你运气不好,因为你试图操纵的第三方页面可以保护自己不被嵌入到其他域中。虽然你试图做的对你的用户是有帮助的,但它将依赖于第三方应用程序中的框架破坏代码所保护的相同的点击劫持技术。你能以某种方式加入js吗?(通过
html
template等)遗憾的是,我认为这是使用第三方应用程序的本质;您可能会从没有从头开始做这件事中获得时间,但您会处理这些限制和限制,或者陷入为定制支付费用的成本漏斗中。乱七八糟的JS代码,短期内看起来不错,但从长远来看,最终会让你付出更多代价。“我建议你不要依赖第三方来拆卸和重建。”菲尔柯林斯正是我的感受。我希望高层管理人员能站在同一个立场上。我们有能力在内部完成,但他们总是坚持使用COTS。然后,我们最终支付数千美元进行定制,因为它不能满足我们的需求,或者我们只是将一个不同的流程塞进员工队伍中,以符合这个基于COTS云计算的应用程序对所有客户的工作方式。谢谢。有趣的东西,不幸的是没有一个对我来说是可行的选择。我仍然会编辑我的答案以供未来可能的读者阅读,因为我在代理方面有了更好的想法。:)如果您无法做到这些,因为您无法控制环境(无论是代理还是浏览器),那么我担心您想要实现的目标是不可能的(这样攻击者就有可能