그누보드 iframe(아이프레임) 사용 , embed, object 사용하는 방법, script 허용 방법

본문 바로가기

그누보드 그누보드 iframe(아이프레임) 사용 , embed, object 사용하는 방법, script 허용 방법

페이지 정보

작성자 키스세븐 댓글 0건 조회 48회 작성일 18-09-27 09:27

본문

[그누보드 iframe(아이프레임) 사용 , embed, object 사용하는 방법, script 허용 방법]



그누보드 iframe 사용 전의 주의사항

※ 주의 : 이 정보는 보안에 문제가 생길 수 있습니다.


대부분의 게시판은 악성코드 공격을 받기가 쉽습니다. 글을 올리는 척하고 프로그래밍 코드를 적어서 올린 후 사람이 모르게 악성코드를 불러오는 방법이 많습니다. 그래서 대형 포털사이트부터 블로그 서비스, 커뮤니티 게시판까지 되도록이면 태그를 막으려고 합니다. iframe , embed, object 사용을 금지시키고 script 허용 역시 막습니다.


마찬가지로 그누보드도 보안을 위해서 iframe , embed, object 태그, script 태그를 사용하지 못하게 막아 놓았습니다. 그누보드에서 아이프레임 사용하기가 어려운 것도 그런 이유 때문입니다.

그런데 "적어도 관리자라면 이 정도 태그는 사용할 수 있어야 하지 않나?" 하는 생각이 들 때가 있을 것입니다. iframe 태그를 사용하지 못하게 하는 것은 방문자가 악성코드를 올리지 못하게 하기 위함이라는 것이라면 말입니다. 


이때 iframe 사용 허용을 하는 방법이 아래의 방법입니다. 자유롭게 동영상을 올린다든지 본문 글 사이에 애드센스를 삽입할 수 있는 장점이 생깁니다. 또한 그누보드의 아이프레임 사용이 자유로워지는 것입니다. 하지만 이런 것을 건드리는 것은 보안을 위험에 빠트릴 수 있습니다. 반드시 심사숙고해서 해야 할 것입니다.




그누보드 아이프레임 허용, script 허용 코드


그누보드에서 lib 디렉토리의 common.lib.php 파일은 기본적인 명령처리에 대한 함수를 담고 있는 파일입니다. 여기에서 두 부분을 수정하여 그누보드의 아이프레임 사용을 허용할 수 있습니다.

common.lib.php 파일의 500번째 줄 근처에서 global $config, $board; 라는 부분을 찾아서 아래처럼 바꿉니다.


if(!$is_admin) { // 관리자라면

    global $config, $board; // 환경설정과 보드에서

$filter = false; // 필터로 금지하지 말 것

} else { // 일반 방문자라면

    global $config, $board; // 그대로 설정을 가져올 것

} // 함수 끝

이렇게 해서 그누보드 iframe 허용을 위하여 금지 필터를 사용하지 않도록 했습니다.

여기서 중요한 것은 보안을 위해 반드시 if(!$is_admin) 함수로 조건을 달아야 한다는 것입니다. 그냥 고쳐버리면 그누보드 아이프레임 사용에는 편하겠지만 보안에 위험이 생깁니다.


다음으로 common.lib.php 파일의 1900~2000번째 줄 근처에서 return preg_replace("/\<([\/]?)(script|iframe|form)([^\>]*)\>?/i", "&lt;$1$2$3&gt;", $code); 라는 부분을 찾아서 아래처럼 바꿉니다.


if(!$is_admin) { // 관리자라면

    return preg_replace("/\<([\/]?)(form)([^\>]*)\>?/i", "&lt;$1$2$3&gt;", $code); // 괄호에 적힌 것만 필터로 삭제

} else { // 일반 방문자라면

    return preg_replace("/\<([\/]?)(script|iframe|form)([^\>]*)\>?/i", "&lt;$1$2$3&gt;", $code); // 괄호에 적힌 모든 것을 필터로 삭제

} // 함수 끝


수정된 위의 코드를 보면 iframe 뿐만 아니라 script도 사라졌습니다. 즉 그누보드 아이프레임과 스크립트를 허용하겠다는 얘기인 것입니다.

preg_replace가 필터를 적용해서 삭제를 하는 함수인데, 그 괄호에 적힌 것들이 필터의 적용을 받는 내용입니다. 여러 종류를 금지하려면 쉼표( , )를 하면서 계속 추가할 수도 있습니다. 


반대로 그누보드의 iframe 사용이나 script 사용을 원한다면 괄호에서 지우면 됩니다. 그 옆에 있는 &lt;$1$2$3&gt; 는 < 나 > 같은 태그입력 기호도 기능이 작동하지 못하도록 하겠다는 것이며 $code는 코드 태그도 금지하겠다는 것이니, 이해했다면 많은 활용을 할 수 있을 것입니다.

이 부분을 활용하면 특정 문구를 금지 시킬 수도 있고 이미지가 표시되지 않도록 할 수도 있고, 관리자만 이미지를 볼 수 있게도 할 수 있습니다. 저작권법 : 키스세븐 (http://www.kiss7.kr/)


마지막으로 한 번 더 강조할 것은, 그누보드에서 iframe , embed, object, script을 금지하는 것은 악성코드 공격을 막으려는 것입니다. 그러므로 이 부분을 수정할 때는 아무리 그누보드의 아이프레임 사용이 필요하다고 해도 정말 꼭 그래야 하는지, iframe 허용에 더 조건을 달 수는 없는지 고려한 후에 결정하는 것이 좋겠습니다.


추천0
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


Copyright © 1997-. 키스세븐 www.kiss7.kr All rights reserved.