- 積分
- 33381
- 金幣
- 1389 個
- 社區(qū)幣
- 2000 元
管理員
- 貢獻
- 2074 點
- 金幣
- 1389 個
|
經(jīng)過測試Flash引用時存在過濾不嚴格的BUG,現(xiàn)給出以下修正方案:
1、找到include\discuzcode.func.php文件
2、在discuzcode函數(shù)中查找- if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {
- $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);
- }
復(fù)制代碼 換行成- if($allowmediacode && strpos($msglower, '[/flash]') !== FALSE) {
- $message = preg_replace("/\[flash\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/ies", "parseflash('\\1')", $message);
- }
復(fù)制代碼
3、在該文件中增加以下函數(shù)代碼- function parseflash($url) {
- preg_match("/((https?){1}:\/\/|www\.)[^\["']+/i", $url, $matches);
- $url = $matches[0];
- $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;
- }
復(fù)制代碼 修正后可以有效地限制引用的Flash地址
+======================================+
感謝“360第三方漏洞收集平臺(http://webscan.360.cn/)”為本次修正提出安全建議
+======================================+
|
|