diff --git a/lib/common.lib.php b/lib/common.lib.php
index 6b571e669..3da1f3716 100644
--- a/lib/common.lib.php
+++ b/lib/common.lib.php
@@ -87,7 +87,17 @@ function goto_url($url)
{
$url = str_replace("&", "&", $url);
//echo "";
- @header("Location:$url");
+
+ if (!headers_sent())
+ header('Location: '.$url);
+ else {
+ echo '';
+ echo '';
+ }
exit;
}
@@ -510,13 +520,13 @@ function conv_content($content, $html)
$content .= "";
}
- $content = preg_replace_callback("/<([^>]+)>/s", 'bad130128', $content);
+ $content = preg_replace_callback("/<([^>]+)>/s", 'bad130128', $content);
$content = preg_replace($source, $target, $content);
// XSS (Cross Site Script) 막기
// 완벽한 XSS 방지는 없다.
-
+
// 이런 경우를 방지함
//$content = preg_replace("#\/\*.*\*\/#iU", "", $content);
// 위의 정규식이 아래와 같은 내용을 통과시키므로 not greedy(비탐욕수량자?) 옵션을 제거함. ignore case 옵션도 필요 없으므로 제거
@@ -560,9 +570,9 @@ function conv_content($content, $html)
$pattern .= "(o|(x6f|111);?)";
$pattern .= "(n|(x6e|110);?)";
//$content = preg_replace("/".$pattern."/i", "__EXPRESSION__", $content);
- $content = preg_replace("/<[^>]*".$pattern."/i", "__EXPRESSION__", $content);
+ $content = preg_replace("/<[^>]*".$pattern."/i", "__EXPRESSION__", $content);
//
와 같은 코드에 취약점이 있어 수정함. 121213
- $content = preg_replace("/(?<=style)(\s*=\s*[\"\']?xss\:)/i", '="__XSS__', $content);
+ $content = preg_replace("/(?<=style)(\s*=\s*[\"\']?xss\:)/i", '="__XSS__', $content);
$content = bad_tag_convert($content);
}
else // text 이면