听雨BBS的flash跨站漏洞解决办法
经daquan提醒,发现听雨对于上传的flash文件的脚本没有处理,用户能够利用上传的flash的脚本功能(比如带有geturl动作的flash)实现自动跳转到某个站点。
到北邮人论坛参考了一下,发现他们有对flash脚本的禁用,于是借鉴北邮人的做法,对听雨的flash附件脚本动作进行了处理,具体做法如下:
改动之前的代码:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
>
<param name="MOVIE"
value="bbscon.php?bid=***&id=***&ap=***" />
<embed
src="bbscon.php?bid=***&id=***&ap=***"></embed>
</object>
改动之后的代码:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
>
<param name="allowScriptAccess" value="never" />
<param name="MOVIE"
value="bbscon.php?bid=***&id=***&ap=***" />
<embed src="bbscon.php?bid=***&id=***&ap=***"
allowScriptAccess="never"
></embed>
</object>
对AllowScriptAccess 参数的解释:
AllowScriptAccess 参数可以用来控制是否允许执行来自 swf 本身对外脚本。
这个参数可以有两个值: "always" 和 "never":
当 AllowScriptAccess 设置为 "never" 时,运行对外脚本会失败;
当 AllowScriptAccess 设置为 "always" 时,可以成功运行对外脚本。
相关文档:
A星算法,flash 演示版
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
[SWF(width="550",height="550",backgroundColor="#999999")]
public class astart extends Sprite
{
// 常数定义
private static const size:int = 50;
private var points:Array = new Array ......
Architecture: i386, amd64
Configure your system to use lenny-backports by adding this line to your sources.list
deb http://www.backports.org/debian lenny-backports main contrib non-free
How to install flashplugin-nonfree :
apt-get update
apt-get install flashplugin-nonfree
How to update flash ......
第一,添加控件。
工具箱 添加—COM组件—选择Shockwave Flash Object,点击确定。之后根据需要对该dll文件进行注册。
注册方式为regsvr32 C:\Windows\System32\Macromed\Flash\Flash10a.ocx [查看这个目录,版本不同可能此文件名不同]
第二,拖放控件至窗体。
......
以下是用datalist绑定了一些flash视频。客户端点击这个视频,则跳出一个网页。
<Script language="javascript">
function OpenAdvertPage(URL) {
win ......
在执行flash的as脚本时,出现了15秒超时错误。查看adobe官网文档有相关描述
http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/runtimeErrors.html
出现15秒超时错误后,脚本可以继续执行 15 秒,然后将终止脚本并引发编号为 1503 的运行时错误(脚本在 30 秒内未能退出,终止其执行)。
应用背景: 在flash中有一按钮,增 ......