解决SWFUpload在Chrome、Firefox浏览器下session找不到的问题
SWFUpload是一个非常不错的异步上传组件,但是在Chrome、Firefox等浏览器下使用的时候会有问题。问题如下:为了防止跳过上传页面直 接向“接受SWFUpload上传的一般处理程序”(假如是Upload.ashx)发送请求造成WebShell漏洞,我的系统中对于 Upload.ashx进行了权限控制,只有登录用户才能进行上传。在IE下没问题,但是在Chrome下运行报错“用户未登录”。
经过搜索得知:因为SWFUpload是靠Flash进行上传的,Flash在IE下会把当前页面的Cookie发到Upload.ashx,但是Chrome、Firefox下则不会把当前页面的Cookie发到Upload.ashx。因为Session是靠Cookie中保存的SessionId实现的,这样由于当前页面的Cookie不会传递给Flash请求的Upload.ashx,因此请求的文件发送到Upload.ashx就是一个新的Session了,当然这个Session就是没有登录的了。
解决这个问题的思路也很简单,那就是手动把SessionId传递给服务器,再服务器端读出SessionId再加载Session。其实解决问题的办法 SWFUpload的Demo中已经给出了,那就是在SWFUpload的构造函数中设置post_params参数:
原理:当用户请求到达ASP.Net引擎的时候Application_BeginRequest方法首先被调用,在方法中看客户端是否提交上来了ASPSESSID,如果有的话则把ASPSESSID的值写入Cookie(以"ASP.NET_SESSIONID"为Key,因为ASP.Net中SessionId就是保存在"ASP.NET_SESSIONID"为Key的Cookie中的),Application_BeginRequest方法后就可以从Cookie中读取到"ASP.NET_SESSIONID"的值还原出页面的Session了。
如果网站中还用到了Membership的FormsAuthentication验证,则还需要把AUTHID也按照SessionID的方法进行处理,这一点是其他讲到SWFUpload这个Bug处理的文章中没有提到的。
在SWFUpload的构造函数中设置post_params参数:
解决SWFUpload在Chrome、Firefox浏览器下session找不到的问题相关推荐
- 解决在ubuntu的firefox浏览器下不能看b站视频的问题
1.打开终端: 2.输入如下指令: sudo apt-get install ubuntu-restricted-extras 3.会弹出一个类似软件安装的界面,点击Tab使光标指到"安装& ...
- 解决IE、firefox浏览器下JS的new Date()的值为Invalid Date、NaN-NaN的问题
解决IE.firefox浏览器下JS的new Date()的值为Invalid Date.NaN-NaN的问题 参考文章: (1)解决IE.firefox浏览器下JS的new Date()的值为Inv ...
- firebug可以在非firefox浏览器下使用
firebug可以在非firefox浏览器下使用,但是效果当然不如firefox下好使用,但是也可以解决一些ie9以下版本不好调试的弊病 使用方法:在需要调试的页面上加: <script typ ...
- 火狐浏览器表单不跳转_表单button的outline在firefox浏览器下的问题
outline的使用,大家都喜欢在reset样式表中直接重置: 复制代码代码如下: * { outline: none; } Eric Meyers 在他的CSS Reset 是这样重置的: 复制代码 ...
- ctf:Firefox浏览器下安装一些常用的插件
一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: l 在Windows和Linux上安装VirtualBox l 创建一个Kali Linux虚拟机 l 更新和升级Ka ...
- 怎么从edge/chrome/firefox浏览器打开FTP链接!
怎么从edge/chrome/firefox浏览器打开FTP链接! 前一阵子配置了ftp服务器,因为在校园网下传输文件很方便,而且速度很快,但是发现在edge/chrome/firefox上打不开(没 ...
- 最新版Chrome/Firefox浏览器下载地址
安装前需卸载原有的版本 [推荐使用,兼容性最好] Chrome浏览器:选择适合你电脑的格式点击下载 Chrome72.0 Win64 http://static.nowcoder.com/b/i/g ...
- Google Chrome 11 浏览器 下Flash Debug 插件无效的解决办法
谷歌浏览器 用起来 就一个字 爽 所以 本人在开发Flex的时候也希望能用chrome来调试自己的flex程序,但是发现无法连接Debug插件,下面总结可能出现问题的地方: 1.首先你要确定是否安装了 ...
- 解决hao123胁持chrome等浏览器主页问题
- 转自:http://xinghao.me/2016/03/01/2016-03-01-kill-hao123/ 首先检查了一下chrome的主页设置,发现没有问题,依然是原来的google.com ...
最新文章
- 利用Unity3D制作简易2D计算器
- 关于Linux中文件权限的探究
- 在线网上打字系统_在线网上打字比赛软件_打字练习_中英文打字系统
- adnroid开发环境的搭建
- 关于tomcat Post 数据参数的问题
- 自动化日志收集及分析在支付宝 App 内的演进
- 攻击者利用的Windows命令、横向渗透工具分析结果列表
- S5PV210体系结构与接口02:ARM编程模型 汇编指令
- 知乎热问:一个程序员的水平能差到什么程度?
- 凌云一周看点 | 混合云多Region架构;云上用户定制化网络;边缘云全站加速;什么是操作系统的云原生...
- JavaScript视频系统教程
- 系统分析与设计期末复习题目
- 王道——数据结构 第一章 思维拓展
- python:烤地瓜程序
- 什么是邓氏编码DUNS NUMBER?
- 课题:shell脚本安装httpd
- jquery easyui中文培训文档
- 如何才能做好网站seo
- torchtorchvision对应版本
- java实现下载网络图片到本地
热门文章
- win10图标变白纸_超详细的纯净版win10安装教程,手把手教你学会,小白秒变大神!...
- 台式电脑cpu排行榜_台式电脑CPU性能天梯图 AMD性能首次反超intel
- HTML鼠标悬停图片置顶,jquery实现鼠标悬浮停止轮播特效
- dev 报表设计器 怎么设置每页10行_可嵌入您系统的.NET 报表控件ActiveReports:带状列表组件...
- Linux先发送条件变量,浅谈Linux条件变量的使用
- 前端HTML5CSS3基础知识点
- linux 不能发送邮件可能的原因
- 一对多 多对一 多对多 多条语句只出现一条的问题
- pytorch打印模型参数_Pytorch网络压缩系列教程一:Prune你的模型
- Nginx学习笔记---ngx_table_elt_t数据结构