在另一台服务器上验证用户,然后访问下载文件
我有一台2台服务器。第一台服务器有php和mysql,但第二台服务器只有php(是下载主机)。 我的网站是关于销售视频,并且由于第一台服务器受到限制(每月流量和空间),因此我需要在第二台服务器上上传视频。所有视频都必须有动态链接,并且所有链接必须是一次性的。在另一台服务器上验证用户,然后访问下载文件
实施例:
用户1购买视频
abc
,该用户具有低于链接下载:http://example.com/1enewk3hd
(指http://example.com/files/video_abc.mp4
)用户2买视频
abc
,该用户具有低于链路下载:http://example.com/sddfse445
(指http://example.com/files/video_abc.mp4
) 个
- 用户必须不能被真正的链接来下载视频
http://example.com/files/video_abc.mp4
我的问题
通过PHP和htaccess的是能够2服务器上的这种情况下(没有MySQL的)?
如果是的话,请指导我什么是对 第二服务器上进行验证用户的最佳方式,然后访问下载文件(没有MySQL的)
在一些网站上,当用户登录服务器1上,可以下载从 服务器2.如果从服务器1注销,则无法访问服务器2. 这是怎么回事?我们不能使用服务器2上的服务器1的会话!
让第一台服务器进行认证。 在第一台服务器上创建链接,这些链接有效时间为x分钟。保护该链接以使用散列进行操作。
哈希= SHA256(validuntil +共享密钥在两台服务器上)
样品: https://server2/video_abc.mp4?validuntil=2017-08-07_160000&hash=ABC123EF5244
(我的样品中我也会使用mod_rewrite为一个不错的URL)
现在客户端重定向到生成链接的新服务器。 php脚本通过使用共享密钥验证查询参数“validuntil”和“hash”。然后检查validuntil是否过期。
如果不是流式传输文件。不要将流媒体文件放入webroot中。 如果您可以使用x-sendfile header,那么它们通过脚本readfile或您的网络服务器发送。
是的,有一种令人难以置信的数量不同的方式可以在不需要数据库的情况下对某人进行身份验证。但是,如果您知道并确信您的唯一解决方案涉及MySQL,为什么您不允许server2联系server1上的数据库? – IsThisJavascript
@ WillParky93感谢亲爱的,但如何将服务器2连接到数据库服务器1?不是很慢? – mghhgm
它会比本地连接慢,但足够快以至于看不到差异。请联系server1主机并要求他们添加一条规则,以允许数据库接受来自服务器2的连接。您可以将任何本地IP列入白名单,以便在mysql中进行连接。 – IsThisJavascript