0

这将是很奇怪的抱歉,希望我将它发布在正确的网站上。

我在一次采访中得到了这个问题。

如果我有两台服务器,一台是媒体,另一台托管需要用户身份验证的网站。

在访问媒体服务器之前,用户必须登录到托管在一台服务器上的网站。只有经过身份验证的用户才能访问媒体和媒体服务器。

我不确定如何通过 PHP 解决这个问题?我相信我可以通过系统管理员和设置 kerberos 服务器的票务系统来做到这一点。但是对于 PHP,我只能想到 RSA 公私钥加密的某种形式?

另一个解决方案/黑客是创建某种哈希并将其附加到 URL。

或者

检查用户IP?每次用户访问媒体文件?

请注意,我申请的公司,经理似乎一点都不熟练。所以也许没有安全的解决方案?

笔记:

我很确定我不能使用它包含在服务器中的 PHP 会话?也许是饼干?这样还安全吗...

先感谢您。

4

2 回答 2

2

为两台服务器使用一个公共域,然后使用加密的 cookie 执行域级身份验证,其中两台服务器具有相同的私有解密密钥。

于 2012-11-09T16:43:16.607 回答
1

这可能很容易也可能很困难:这取决于媒体服务器是否信任网络服务器。

场景 1:媒体服务器信任 Web 服务器 - 简单

  • 两者都维护一个共享的秘密(在最广泛的意义上 - 可以是公钥/私钥对)
  • 登录时,Web 服务器向客户端分发一个令牌,该令牌使用共享密钥(或 Web 服务器持有的部分)签名或加密
  • 客户端将此令牌提供给媒体服务器,媒体服务器通过其共享密钥的副本(或部分)对其进行身份验证
  • 因此,媒体服务器可以做出访问决定

场景 2:媒体服务器不信任 Web 服务器 - 很难

  • 请注意,您总是需要某种共同信任
  • 这可以是分布式身份验证系统,如 Kerberos、OpenID 等
于 2012-11-09T16:47:45.030 回答