标签: custom-protocol

使用CSP(内容安全策略)和自定义协议

我有点紧张,正在开发一个基金经纪人网站.

作为我们安全策略的一部分,CSP在我们的服务器上实现,但现在,我们正在实施与斯堪的纳维亚银行(BankID)提供的桌面软件的通信.

有了这个,出现了一个问题:要打开BankID桌面软件,应该使用自定义协议单击一个链接,如下所示:

bankid://?orderref=[GUID]&autostarttoken=[GUID]
Run Code Online (Sandbox Code Playgroud)

我确信您理解,我遇到严重问题,允许通过我们的CSP政策进行此链接.我的搜索没有产生任何结果,我的想法已经用完了.

我试图在协议下尝试允许通配符域:

Content-Security-Policy: default-src 'self' bankid://*;
Run Code Online (Sandbox Code Playgroud)

如果我关闭CSP,它的效果非常好,所以这绝对是个问题.

有人对此有经验吗?任何帮助是极大的赞赏.


编辑

经过几个小时的搜索,我在Mozilla Wiki上找到了以下内容:

我们需要一种应用程序交付机制,它可以保证应用程序的完整性和真实性,还可以实现定义明确的应用程序和权限范围,从而可以在运行时维护完整性.

并进一步:

特权和认证的应用程序将通过一个独特的方案(app://)访问.域名将对应于应用ID.

我不确定这是否适用,但如果我认为这是正确的,那就意味着Mozilla正在考虑如何解决这个问题.

protocols custom-protocol content-security-policy bankid

5
推荐指数
1
解决办法
783
查看次数

使用来自安全网页的自定义 URL 协议时避免混合内容消息

我正在研究如何使用自定义 URL 应用程序协议(例如 custom://)来启动我本地安装的应用程序。当我在 http(没有 SSL)上访问我的网站时,一切都运行良好,当进入页面时,本地应用程序开始启动。

切换到 https 网站显示“安全”标志,但当导航到该页面时,本地应用程序已启动,但“安全”标志消失了调试页面时,它显示消息:混合内容:页面在 'https:// ....' 已通过 HTTPS 加载,但请求了不安全的资源 'custom://myapp/jivknjco'。此内容也应通过 HTTPS 提供。” 正在出现。

我该如何解决这个问题?

ssl https custom-protocol mixed-content

5
推荐指数
0
解决办法
149
查看次数

在 chrome 86 中检测自定义协议处理程序

我已经根据https://gist.github.com/aaronk6/d801d750f14ac31845e8实施了一个解决方案 ,它一直工作到 chrome 85 。使用最新的 chrome Update Onblur 没有检测到开放协议处理程序弹出窗口。有没有办法使用 Chrome 86 新版本识别在 windows 中注册的自定义协议。下面提到的我实现的代码,它适用于 Firefox

function LinkClicked() {
        launchUri($(this).attr("href"), function () {
            // SUCCESS APPLICATION INSTALLED
        }, function () {
            // PROTOCOL NOT REGISTERD IN REGISTRY
            setTimeout(showAppInstallWarningMessage, 4000);
        }, function () {
            // STATUS CANNOT IDENTIFY
            setTimeout(showAppInstallWarningMessage, 4000);
        });
    }





function launchUri(uri, successCallback, noHandlerCallback, unknownCallback) {
    var res, parent, popup, iframe, timer, timeout, blurHandler, timeoutHandler, browser;

    function callback(cb) {
        if (typeof cb === 'function') cb();
    }

    function createHiddenIframe(parent) …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome custom-protocol chromium google-chrome-app

5
推荐指数
1
解决办法
1907
查看次数

不允许启动自定义协议,因为需要用户手势

我需要运行我的自定义协议两次,但第二次不起作用,我收到此错误(不允许启动“cutomProtocol”,因为需要用户手势。)我试图找到解决方案,但没有找到任何解决方案!

chrome、firefox 和 Edge 也有同样的问题。

在此输入图像描述

我需要看到这个弹出窗口两次 在此输入图像描述

window.location.href = 'my-protocol://${base64}';

和

customProtocolVerify(
      `my-protocol://${base64}`,
      () => {
        // successCb: Callback function which gets called when custom protocol is found.
        console.log('My protocol found and opened the file successfully..');
      },
      () => {
        // failCb: Callback function which gets called when custom protocol not found.
        console.log('My protocol not found.');
      }
    );
Run Code Online (Sandbox Code Playgroud)

我尝试了这两个但没有成功

澄清

我有一个自定义协议。

我的场景:

  1. 检查它是否安装成功(我正在使用customProtocolVerify方法),并且如果找到协议,该方法就会启动
  2. 运行一些API
  3. 再次启动协议

我的问题:

步骤 3 不起作用,控制台上出现错误,显示“不允许启动...”,当然我看不到打开协议的弹出窗口。

我请求帮助以使第 3 步顺利进行

javascript browser custom-protocol gesture angular

5
推荐指数
1
解决办法
9042
查看次数

自定义URL协议,避免安全警告

我正在研究是否可以使用自定义URL应用程序协议(例如custom://)来启动我的应用程序,但看起来所有实现都修改了HKCR.这导致一些讨厌的安全警告(我相信因为UAC).有谁知道是否可以安装自定义URL协议作为HKCU级别?或者另一种避免这些警告的方法?

谢谢!

protocols custom-protocol url-protocol

2
推荐指数
1
解决办法
1657
查看次数

调用协议方法是否通过程序流控制?

我知道这很可能是一个蹩脚的问题,但是我连续三次全力以赴,而且我非常模糊.我是Objective C和Cocoa Touch的新手.

我创建了一个提供委托方法的类.我将使用简化的示例代码,因为细节并不重要.头文件如下所示:

#import <Foundation/Foundation.h>

@protocol UsernameCheckerDelegate <NSObject>
@required
- (void)didTheRequestedThing:(BOOL)wasSuccessful;
@end

@interface TheDelegateClass : NSObject {
    id <TheDelegateClassDelegate> tdcDelegate;
}

@property (assign) id <TheDelegateClassDelegate> tdcDelegate;

- (void)methodThatDoesSomething:(int)theValue;

@end
Run Code Online (Sandbox Code Playgroud)

源文件如下所示:

#import "TheDelegateClass.h"

@implementation TheDelegateClass

@synthesize tdcDelegate;

- (void)methodThatDoesSomething:(int)theValue {
    if (theValue > 10) {
        [[self tdcDelegate] didTheRequestedThing:NO];
        // POINT A
    }

    // POINT B
    int newValue = theValue * 10;
    NSString *subject = [NSString stringWithFormat:@"Hey Bob, %i", newValue];
    // Some more stuff here, send an email or something, whatever …
Run Code Online (Sandbox Code Playgroud)

iphone delegates objective-c custom-protocol ios

1
推荐指数
1
解决办法
276
查看次数