코드 포맷

This commit is contained in:
kkigomi
2023-06-01 18:15:48 +09:00
parent 9489254bbf
commit 476b06792a

View File

@ -601,42 +601,53 @@ function check_html_link_nofollow($type=''){
return true; return true;
} }
// http://htmlpurifier.org/ /**
// Standards-Compliant HTML Filtering * HTMLPurifier 필터를 거친 HTML 코드를 반환
// Safe : HTML Purifier defeats XSS with an audited whitelist *
// Clean : HTML Purifier ensures standards-compliant output * http://htmlpurifier.org/
// Open : HTML Purifier is open-source and highly customizable * Standards-Compliant HTML Filtering
* Safe : HTML Purifier defeats XSS with an audited whitelist
* Clean : HTML Purifier ensures standards-compliant output
* Open : HTML Purifier is open-source and highly customizable
*
* @param string $html
* @return string
*/
function html_purifier($html) function html_purifier($html)
{ {
global $is_admin, $write; global $is_admin, $write;
$f = file(G5_PLUGIN_PATH.'/htmlpurifier/safeiframe.txt'); $f = file(G5_PLUGIN_PATH . '/htmlpurifier/safeiframe.txt');
$domains = array(); $domains = array();
foreach($f as $domain){ foreach ($f as $domain) {
// 첫행이 # 이면 주석 처리 // 첫행이 # 이면 주석 처리
if (!preg_match("/^#/", $domain)) { if (!preg_match("/^#/", $domain)) {
$domain = trim($domain); $domain = trim($domain);
if ($domain) if ($domain) {
array_push($domains, $domain); array_push($domains, $domain);
}
} }
} }
// 글쓴이가 관리자인 경우에만 현재 사이트 도메인을 허용 // 글쓴이가 관리자인 경우에만 현재 사이트 도메인을 허용
if (isset($write['mb_id']) && $write['mb_id'] && is_admin($write['mb_id'])) array_push($domains, $_SERVER['HTTP_HOST'].'/'); if (isset($write['mb_id']) && $write['mb_id'] && is_admin($write['mb_id'])) {
array_push($domains, $_SERVER['HTTP_HOST'] . '/');
}
$safeiframe = implode('|', run_replace('html_purifier_safeiframes', $domains, $html)); $safeiframe = implode('|', run_replace('html_purifier_safeiframes', $domains, $html));
include_once(G5_PLUGIN_PATH.'/htmlpurifier/HTMLPurifier.standalone.php'); include_once(G5_PLUGIN_PATH . '/htmlpurifier/HTMLPurifier.standalone.php');
include_once(G5_PLUGIN_PATH.'/htmlpurifier/extend.video.php'); include_once(G5_PLUGIN_PATH . '/htmlpurifier/extend.video.php');
$config = HTMLPurifier_Config::createDefault(); $config = HTMLPurifier_Config::createDefault();
// data/cache 디렉토리에 CSS, HTML, URI 디렉토리 등을 만든다. // data/cache 디렉토리에 CSS, HTML, URI 디렉토리 등을 만든다.
$config->set('Cache.SerializerPath', G5_DATA_PATH.'/cache'); $config->set('Cache.SerializerPath', G5_DATA_PATH . '/cache');
$config->set('HTML.SafeEmbed', false); $config->set('HTML.SafeEmbed', false);
$config->set('HTML.SafeObject', false); $config->set('HTML.SafeObject', false);
$config->set('Output.FlashCompat', false); $config->set('Output.FlashCompat', false);
$config->set('HTML.SafeIframe', true); $config->set('HTML.SafeIframe', true);
if( (function_exists('check_html_link_nofollow') && check_html_link_nofollow('html_purifier')) ){ if ((function_exists('check_html_link_nofollow') && check_html_link_nofollow('html_purifier'))) {
$config->set('HTML.Nofollow', true); // rel=nofollow 으로 스팸유입을 줄임 $config->set('HTML.Nofollow', true); // rel=nofollow 으로 스팸유입을 줄임
} }
$config->set('URI.SafeIframeRegexp','%^(https?:)?//('.$safeiframe.')%'); $config->set('URI.SafeIframeRegexp', '%^(https?:)?//(' . $safeiframe . ')%');
$config->set('Attr.AllowedFrameTargets', array('_blank')); $config->set('Attr.AllowedFrameTargets', array('_blank'));
//유튜브, 비메오 전체화면 가능하게 하기 //유튜브, 비메오 전체화면 가능하게 하기
$config->set('Filter.Custom', array(new HTMLPurifier_Filter_Iframevideo())); $config->set('Filter.Custom', array(new HTMLPurifier_Filter_Iframevideo()));
@ -653,6 +664,7 @@ function html_purifier($html)
); );
$purifier = new HTMLPurifier($config); $purifier = new HTMLPurifier($config);
return run_replace('html_purifier_result', $purifier->purify($html), $purifier, $html); return run_replace('html_purifier_result', $purifier->purify($html), $purifier, $html);
} }