省教研员魏老师要求我们修改一下去年的省级培训专用博客模板,使其成为信息技术学科培训资源博客。考虑到浙师大附中的那帮弟兄最近正忙着今年培训工作,我就请我组的陈敏老师来修改的模板。想不到完成看是这么简单的任务,居然也不容易。
问题的关键是在于“成长博客”的BT服务。估计是管理员担心来自swf的某些web脚本攻击,如挂马之类,居然屏蔽了在模板中插入swf的功能。好好的一段代码,提交时被替换为无效代码。于是,认真研究了原理,耍一次“成长博客”的技术人员,成功在模板中插入了swf文件。
过程回放:
我选择使用SWFObject脚本来插入swf,因为代码编写相对简单。当然,直接插入脚本是不成功的,因为其模板编辑不支持js脚本,强行在代码中插入脚本,提交后关键字“script”会被替换。估计他们肯定使用replace函数来实现脚本过滤功能的,于是我试着插入如下代码:
<div id="flash_1"></div>
<div id="flash_2"></div>
<sscriptcript type="text/javasscriptcript" src="http://www.wzms.com/images/swfobject.js"></sscriptcript>
<sscriptcript type="text/javasscriptcript">
var so1 = new SWFObject("http://chenmin.wzms.com/otherimages/oblogkqimage/top.swf", "mymovie", "774", "164", "6", "#ffffff");
so1.write("flash_1");
var so2 = new SWFObject("http://chenmin.wzms.com/otherimages/oblogkqimage/blog.swf", "mymovie", "90", "30", "6", "#ffffff");
so2.write("flash_2");
</sscriptcript>
提交后,正如自己的猜测一样,sscriptcript经过替换后,变成script,swf运行正常。
<div id="flash_1"></div>
<div id="flash_2"></div>
<script type="text/javascript" src="http://www.wzms.com/images/swfobject.js"></script>
<script type="text/javascript">
var so1 = new SWFObject("http://chenmin.wzms.com/otherimages/oblogkqimage/top.swf", "mymovie", "774", "164", "6", "#ffffff");
so1.write("flash_1");
var so2 = new SWFObject("http://chenmin.wzms.com/otherimages/oblogkqimage/blog.swf", "mymovie", "90", "30", "6", "#ffffff");
so2.write("flash_2");
</script>
当然,下次编辑模板时要注意了,直接保存,脚本又会被过滤掉的。
