그누보드 [G5] 게시판 > 글쓰기(에디터) > 내용 에 CSS & javascript(자바스크립트) 사용하기
페이지 정보
본문
게시판 본문에 글을 작성할때 css 나 javascript 는 작동하지 않습니다
정확히 말하면, 디비의 게시판 테이블의 wr_content 에는 정보가 있으나, view 할때 css 와 javacript 를 제거후 보여줍니다.
1. 예를 들면 본문에 아래의 내용을 저장했다면
1-1. write.php 에 입력한 내용
<style>
.a1 { font-size:2em; }
.a2 { font-size:1.1em; }
</style>
<a href="#" onclick="window.open('/delivery.php','evaluate','resizable=no, scrollbars=no, width=500, height=500');">배송서비스신청</a>
1-2. 디비에 wr_content 에 저장 OK
1-3. view.php 에서 보여질때
<a href="#">배송서비스신청</a>
2. <style>..</style> 과 onclick 내용이 모두 제거후 보여지는데, 이것을 내가 저장한 내용으로 보여주고 싶을때 아래와 같이 합니다.
2-1. /lib/common.lib.php 내용에서 conv_content 함수에 대해서 아래 붉은 글자를 추가
function conv_content($content, $html, $filter=true)
{
global $config, $board, $bo_table; // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
if ($html)
{
.....
$content = preg_replace($source, $target, $content);
// 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용) - lib/common.lib.php & bbs/write.php 2개 파일 수정 필요
if ($bo_table=='특정게시판') { } else { // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
if($filter)
$content = html_purifier($content);
} // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
이렇게 수정하면 특정게시판일때는 html_purifier 가 작동하지 않고, 저장된 원본코드가 그대로 표시가 됩니다.
관리자가 제어하는 게시판이 아닌 것까지 풀면 해킹의 위험이 있으므로 주의가 필요합니다.
2-2. /bbs/write.php 에서 붉은 글자를 추가
if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){
// kisa 취약점 제보 xss 필터 적용적용
// 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용) - lib/common.lib.php & bbs/write.php 2개 파일 수정 필요
if ($bo_table=='특정게시판') { // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
$content = get_text($write['wr_content'], 0);
} else { // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
$content = get_text(html_purifier($write['wr_content']), 0);
} // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
}
정확히 말하면, 디비의 게시판 테이블의 wr_content 에는 정보가 있으나, view 할때 css 와 javacript 를 제거후 보여줍니다.
1. 예를 들면 본문에 아래의 내용을 저장했다면
1-1. write.php 에 입력한 내용
<style>
.a1 { font-size:2em; }
.a2 { font-size:1.1em; }
</style>
<a href="#" onclick="window.open('/delivery.php','evaluate','resizable=no, scrollbars=no, width=500, height=500');">배송서비스신청</a>
1-2. 디비에 wr_content 에 저장 OK
1-3. view.php 에서 보여질때
<a href="#">배송서비스신청</a>
2. <style>..</style> 과 onclick 내용이 모두 제거후 보여지는데, 이것을 내가 저장한 내용으로 보여주고 싶을때 아래와 같이 합니다.
2-1. /lib/common.lib.php 내용에서 conv_content 함수에 대해서 아래 붉은 글자를 추가
function conv_content($content, $html, $filter=true)
{
global $config, $board, $bo_table; // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
if ($html)
{
.....
$content = preg_replace($source, $target, $content);
// 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용) - lib/common.lib.php & bbs/write.php 2개 파일 수정 필요
if ($bo_table=='특정게시판') { } else { // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
if($filter)
$content = html_purifier($content);
} // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
이렇게 수정하면 특정게시판일때는 html_purifier 가 작동하지 않고, 저장된 원본코드가 그대로 표시가 됩니다.
관리자가 제어하는 게시판이 아닌 것까지 풀면 해킹의 위험이 있으므로 주의가 필요합니다.
2-2. /bbs/write.php 에서 붉은 글자를 추가
if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){
// kisa 취약점 제보 xss 필터 적용적용
// 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용) - lib/common.lib.php & bbs/write.php 2개 파일 수정 필요
if ($bo_table=='특정게시판') { // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
$content = get_text($write['wr_content'], 0);
} else { // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
$content = get_text(html_purifier($write['wr_content']), 0);
} // 지정된 게시판은 css 와 javascript 입력내용 모두 노출 ( 2021-02-18 정창용)
}
댓글목록
등록된 댓글이 없습니다.