当这些服务器通过我们的测试时,我的客户站点会按照IP为其客户提供证书。此认证仅适用于经过测试的IP。所以我们需要成为服务证书的人员,以便我们验证显示我们证书的网站确实是由我们测试的。因此,当客户的用户点击证书链接时,他们可以相信该网站确实经过了我们的测试(该网站没有被另一台未经我们测试过的服务器提供服务,但声称是) 。
siteB.com/certificate.php?companyid=1234 &服务器ID = 4321个
过程简化:
用户通过看起来像这样的链接指向我们的网站
- 用户现场A
- 用户单击指向我的站点(站点B)的链接查看站点A的证书。
- 我的站点,站点B需要验证它确实是正试图显示由网站A.赚
最初证书站点A,我认为$ _ SERVER变种可能有一个值来表明谁引用的服务器是,但我收到的答复,发布有关该问题表明,虽然该信息存储在$ _SERVER [“HTTP_REFERER”],它是不可靠的(插件或用户可能会修改此值)。
由于我不能依赖于此,我需要另一种方法来验证引用的服务器是谁,他们声称是。我考虑使用一次性使用令牌,但是然后有效的服务器可以将令牌简单地传递给客户拥有的其他服务器(尚未经过测试),并且客户可以通过这种方式将任意数量的服务器声明为被认证由我们仅以一次测试的价格(以及破坏证书的完整性)为准。
我想知道如果这个问题是不可能做出一个万无一失的解决方案,并且最好的可以做的是混淆不受控制的端点(客户的服务器)意味着张贴关键指示他们是(例如,一个鬼鬼祟祟的客户必须阅读一些混乱的JavaScript,或者为了欺骗系统而拆卸闭源客户端程序)。
我的想法到目前为止是这样的(和它的可怕):
我需要做一个封闭源代码的程序运行客户端,可能通过Native Client这将在点击启动证书链接在客户网站(网站A)上首先通过我的网站(网站B)验证自己,然后打开与网站A的服务器,网站B的服务器和用户在网站B中的三方通信线路将验证网站A是他们自称是谁,然后向用户返回证书或错误消息,说明证书无法加载的原因(例如连接超时)。
网站B上的脚本与用户NaCl程序的公开流将use curl获取站点A的服务器的IP地址并进行验证。
对我来说,这是一个非常粗的解决方案(如果它甚至是一个解决方案),虽然大多数用户不会在意看别人的证书,让谁做护理去赴汤蹈火的用户(安装并运行NaCl计划)只是看看证书就是疯狂。
这感觉就像一个有点愚蠢的问题,但会运行此闪存,而不是只是作为安全/不安全运行一个程序的NaCl?
当然,有一种更好的方式去做的这一切......
太棒了!我不知道ORIGIN标题。在查询字符串中使用ajax验证并重定向到带有一次性使用标记(在验证响应中提供)的证书页面的URL听起来很完美。就像你说的那样,客户没有理由想改变这个头值。谢谢,戴夫! – 2013-03-05 02:12:34
酷!如果你需要任何帮助编程,请告诉我。我很乐意这样做!哈哈 – 2013-03-05 03:05:00