andy888 发表于 2013-4-3 15:49:36

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

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

      1、找到include\discuzcode.func.php文件
      2、在discuzcode函数中查找 if($allowmediacode && strpos($msglower, '') !== FALSE) {
                        $message = preg_replace("/\\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);
                }换行成 if($allowmediacode && strpos($msglower, '') !== FALSE) {
                        $message = preg_replace("/\\s*([^\[\<\r\n]+?)\s*\[\/flash\]/ies", "parseflash('\\1')", $message);
                }3、在该文件中增加以下函数代码function parseflash($url) {
      preg_match("/((https?){1}:\/\/|www\.)[^\[\"']+/i", $url, $matches);
      $url = $matches;
      $code = '';
      if($url) {
                $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>";
      }
      return $code;
}修正后可以有效地限制引用的Flash地址

+======================================+
感谢“360第三方漏洞收集平台(http://webscan.360.cn/)”为本次修正提出安全建议
+======================================+

www.laedt.com 发表于 2019-11-25 23:44:08


期待 discuzQ 王者归来,官网终于有团队管理了,这还可以抢板凳,开心 ,牛气!!!
页: [1]
查看完整版本: Discuz!7.X严格限制引用的Flash地址解决方案

腾讯云商标服务特惠!快速注册低至270元/件起,更有续展/宽展+延伸一站式服务、全场代金券补贴