【发布时间】:2013-05-03 07:23:59
【问题描述】:
我有一个服务器“A”。你有一个服务器'B'。服务器“A”想要向服务器“B”提供登录表单(用户名和密码)。
如何实现服务器“B”无法查看/拦截用户填写的内容的场景?凭据必须以安全的方式到达服务器“A”而不被拦截。
这可能吗?
这是一个更好的例子:
服务器 A 向服务器 B 提供服务,服务器 B 向具有服务器 A 的密码。在某些时候,用户必须在服务器 A 中进行身份验证,但登录表单将显示在服务器的 B 页面中。我清楚了吗?服务器 B 无法读取这些凭据。
业务逻辑是服务器 A 有许多客户端,服务器 A 将允许第三方开发应用程序到服务器的 A 客户端。拥有主密码的是服务器 A,而服务器 B 无法访问/读取/拦截这些凭据。在服务器 B 上对客户端进行身份验证的方式是通过嵌入在服务器 B 中的登录表单(我无法将用户重定向到服务器 A。用户必须停留在服务器的 B 页面上。)。
问题是:
将表单嵌入服务器 B 的更好方法是什么?
服务器B能否运行能够在提交前读取用户凭据的 JavaScript?
【问题讨论】:
-
我没有
server,它只是服务器(你)和客户端(我们)。而保护中间人攻击的唯一 100% 方法是 ssl/https。 -
我认为他是说他希望能够在服务器 B 上放置一个登录表单,该登录表单发布到服务器 A,但不允许访问服务器 B 上发布的数据。就像某人的方式使用站点 A 的凭据登录站点 B。听起来像是 openid 的实现或类似 google/facebook 登录的东西。
-
你可以在没有 SSL 的情况下做到这一点,方法是从服务器 A 发布到自己,然后使用共享密钥加密,然后使用 cURL 联系服务器 B。但是,从用户到服务器 A 的路径在技术上仍然是容易被拦截。您能否提供更多关于您要保护的内容的背景信息?
-
也许 A 应该实现二级密码或 API 密钥。或者也许您应该单击 B 中的某些内容,它会重定向到 A,从您的站点获取用户许可,然后使用身份验证令牌重定向回 B。这样做的好处是,您不会鼓励用户在他们不应该绝对信任的网站中输入他们的主密码。
标签: php security cross-domain forms-authentication