我们正在为移动应用程序设计重定向页面。
用户可以访问以下页面:https://mobileredirect.our-app.com?target=https://clientdomain.com/some_resource
iOS和Adroid上的移动应用程序可以在安装时拦截“mobileredirect.our-app.com”域。如果未安装,浏览器将打开,并将浏览器重定向到客户端域。
这包含一个明显的问题。任何人都可以在计划中放置任何域,这将成为攻击媒介。我希望能够验证URL是否实际来自可靠来源。我们需要这样做,因为我们无法控制哪些域可以使用我们的移动应用程序。
理想情况下,我想在浏览器中执行此操作,而无需服务器。
我正在考虑使用像simple-crypt这样的库,使用非对称操作。受信任的服务器将拥有私钥,他们会加密最终的URL,如下所示:https://mobileredirect.our-app.com?target=ENCRYPTED_URL。客户端(移动应用程序和网站)将包含用于解密URL的公钥。这意味着每个人都可以看到公钥。
现在我的问题:
这是个好主意吗?怎么能打破这个?这有点矫枉过正吗?是否有更简单的方法(例如:使用某种校验和算法)?
的交叉帖子中得到解答