Php 关于保障SWFUpload安全的思考

Php 关于保障SWFUpload安全的思考,php,security,swfupload,Php,Security,Swfupload,使用Javascript控制的Flash上传程序(例如SWFUpload)的一个问题是,Flash在执行上传脚本时会启动自己的会话。这意味着,如果上载脚本对用户进行身份验证,它将失败 解决此问题的一种方法是将PHPSESSID作为post参数传递给脚本。然而,这并不是一个完美的解决方案,因为许多托管提供商都启用了PHP设置会话\u仅使用\u cookies,从而阻止了请求接受会话ID 这显然是一个主要的问题,有时你不想让匿名用户执行你的上传脚本,从上帝知道的地方传递什么 我想知道除了会话和coo

使用Javascript控制的Flash上传程序(例如SWFUpload)的一个问题是,Flash在执行上传脚本时会启动自己的会话。这意味着,如果上载脚本对用户进行身份验证,它将失败

解决此问题的一种方法是将PHPSESSID作为post参数传递给脚本。然而,这并不是一个完美的解决方案,因为许多托管提供商都启用了PHP设置会话\u仅使用\u cookies,从而阻止了请求接受会话ID

这显然是一个主要的问题,有时你不想让匿名用户执行你的上传脚本,从上帝知道的地方传递什么

我想知道除了会话和cookie之外,是否有人有其他方法来验证用户。是否可以验证闪存请求是否来自预期来源,以及是否有有效用户发起了请求。也许,使用PHPSESSID以外的某种令牌,这怎么可能工作呢

是否可以验证闪存请求是否来自预期来源,以及是否有有效用户发起了请求

。您永远无法可靠地验证闪存请求是否来自预期的源。您只能验证其内容

也许,使用PHPSESSID以外的某种令牌,这怎么可能工作呢


您可以发明自己的会话恢复令牌a.k.a.记住我cookie功能,将SWFUpload会话与PHP会话关联起来。但它不会验证客户端软件,只是验证两个会话之间的关系。

许多主机提供商都会将PHP设置会话\u仅使用\u cookie打开。至少给我看一个我认为这是强迫的问题。你拒绝使用最优解,只是找了个很笨拙的借口,还找了一些奇怪的借口。使用session_id函数至少手动传递session id没有问题。希望它不会在你想象的主机提供商中被禁用