这个问题既可以看作是实践问题,也可以看作是理论问题。
我正在设计一个涉及 HTTP 客户端(Flash Player 应用程序)和 HTTP 服务器“后端”的系统。每个注册用户都有自己的私人图像库。图像可以上传,当然随后也可以检索。
由于用户使用携带会话标识符的 cookie 进行身份验证,因此我(以及问题)突然变得清楚,我可以为经过身份验证的客户端提供以下类型的 URL 来检索图像(我的术语中的“资产”)。请注意,资产标识符即使在用户之间也是唯一的,即没有两个用户都拥有 ID 为 555 的资产。此外,资产标识符被假定为真正持久的,即 ID 是不可重用的。我想到的网址是:
http://myserver/user/asset/<asset_id>
括号表示变量值,即显然这些和“asset_id”在这里不应逐字记录,它们表示实际的资产标识符。 “发往”上述 URL 的 HTTP 请求预计会携带带有用户会话标识符的 cookie 标头,该标头唯一地验证并授权用户作为所请求资产的所有者。
我非常追求永久 URL(“酷 URI 不会改变”,正如 Tim Berners-Lie 曾经说过的那样),但显然,由于资产资源对于上传/拥有它们的用户来说是私有的,因此它们不会被缓存任何中间代理,只有用户代理。
我们是否可以将上面的 URL 视为识别用户资产的好方法?我担心的是,响应会根据是否提供有效的会话标识符 cookie 标头而有所不同,因此 URL 和响应之间不存在一对一的关系。但一个人能做的并不多,不是吗?服务器必须检查用户是否有权检索资产,对吗?如果你们对这里的解决方案有任何更好的建议,我也很想听到。谢谢。
你已经说了这一切,我不会改变你的策略:-) 如果未经授权的用户尝试访问某些资产,只需给他一个 403 http 代码......在这种情况下,这是正确且预期的响应
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)