找回密码
 注册
查看: 3014|回复: 0
收起左侧

[分享] Discuz!7.X严格限制引用的Flash地址解决方案

[复制链接]

5314

主题

8320

帖子

1万

积分

管理员

出售国内外虚拟空间

Rank: 10Rank: 10Rank: 10

积分
14665
帖子
8320
精华
67
体力
14665 点
蓝豆
2391 点
注册时间
2007-6-8

终身成就奖LY官方团队会员身份ID卡

发表于 2013-4-9 23:39:49 | 显示全部楼层 |阅读模式

经过测试Flash引用时存在过滤不严格的BUG,现给出以下修正方案:

        1、找到include\Discuzcode.func.php文件
        2、在discuzcode函数中查找
  1. if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {
  2.                         $message = preg_replace("/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "<script type="text/javascript" reload="1">document.write(AC_FL_RunContent('width', '550', 'height', '400', 'allowNetworking', 'internal', 'allowScriptAccess', 'never', 'src', '\\1', 'quality', 'high', 'bgcolor', '#ffffff', 'wmode', 'transparent', 'allowfullscreen', 'true'));</script>", $message);
  3.                 }
复制代码
换行成
  1. if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {
  2.                         $message = preg_replace("/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/ies", "parseflash('\\1')", $message);
  3.                 }
复制代码
3、在该文件中增加以下函数代码
  1. function parseflash($url) {
  2.         preg_match("/((https?){1}:\/\/|www\.)[^\["']+/i", $url, $matches);
  3.         $url = $matches[0];
  4.         $code = '';
  5.         if($url) {
  6.                 $code = "<script type="text/javascript" reload="1">document.write(AC_FL_RunContent('width', '550', 'height', '400', 'allowNetworking', 'internal', 'allowScriptAccess', 'never', 'src', '$url', 'quality', 'high', 'bgcolor', '#ffffff', 'wmode', 'transparent', 'allowfullscreen', 'true'));</script>";
  7.         }
  8.         return $code;
  9. }
复制代码
出售国内或美国高性能虚拟空间,高速VPS以及服务器! 同时承接各种类型的网站制作,网站维护,支付宝交易安全放心!    联系QQ:6102031
懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

网站公告上一条 /2 下一条

GMT+8, 2024-5-14 16:18 , Processed in 0.093750 second(s), 24 queries , Gzip On.

© 2006-2022 Powered by Discuz! X3.4

快速回复 返回顶部 返回列表