使用由Javascript控制的Flash上传器(例如SWFUpload)的一个问题是Flash在执行上传脚本时启动自己的会话。这意味着如果上传脚本对用户进行身份验证,则会失败。
解决此问题的一种方法是将PHPSESSID作为post参数传递给脚本。但是,这不是一个完美的解决方案,因为许多托管服务提供商已启用PHP设置“session_use_only_cookies”,从而阻止从请求中接受会话ID。
这显然是一个主要的问题,有时你不希望匿名用户执行你的上传脚本,传递给上帝知道什么 - 从众所周知的地方。
我想知道是否有人有任何其他想法来验证会话和cookie以外的用户。是否可以验证Flash请求是否来自预期的来源,以及有效用户是否发起了请求。使用PHPSESSID之外的某种令牌,或许,如果有的话,这怎么可能呢?
答案 0 :(得分:0)
是否有可能验证Flash请求是否来自预期的来源以及有效的用户发起了该请求。
Not reliably, no。您永远无法可靠地验证Flash请求是否来自“预期来源”。您只能验证其内容。
使用PHPSESSID以外的某种令牌,如果有的话,这怎么工作?
您可以发明自己的“会话恢复令牌”(也称为“记住我的cookie”)功能,以将SWFUpload会话与PHP会话相关联。但这不会验证客户端软件,而不会验证两个会话之间的关系。