[개선] 특정 게시물에 대해 스크립트,iframe 허용하기 (동영상, 자바스크립트 등 허용)
로빈아빠
본문
보통 보안상의 이유로 게시판 내용에 포함된 특수 태그를 금지한다.
금지위치 : common.lib.php
// 악성태그 변환
function bad_tag_convert($code)
{
return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "<$1$2$3>", $code);
}
관리자의 필요에따라 게시물별로 허용하는 스킨을 만들자면
1. write.skin.php 에서 옵션부분 추가
if ($is_secret) {
if ($is_admin || $is_secret==1) {
$option .= "<input type=checkbox value='secret' name='secret' $secret_checked><span class=w_title>비밀글</span> ";
} else {
$option_hidden .= "<input type=hidden value='secret' name='secret'>";
}
}
if ($is_admin) {
$option .= "<input type=checkbox value='notbadtag' name='notbadtag' ".($write[wr_9]=="notbadtag"?"checked":"")."><span class=w_title>스크립트허용</span> ";
}
if ($is_mail) {
$option .= "<input type=checkbox value='mail' name='mail' $recv_email_checked>답변메일받기 ";
}
2. write_update.skin.php 끝에 추가
//2009-12-17 김성대 스크립트,태크 허용이면
if ($is_admin&&array_key_exists("notbadtag",$_POST)) {
$sql="update $write_table set wr_9='$_POST[notbadtag]' where wr_id='$wr_id'";
sql_query($sql);
}
3. view.skin.php 상단부분에 추가
if ($view[wr_9]=="notbadtag") {
$view[content]=str_replace("<","<",$view[content]);
$view[content]=str_replace(">",">",$view[content]);
$view[content]=str_replace("&","&",$view[content]);
}
수정에서 스크립트허용 을 check 하면 동영상등이 잘 보이게 될것이다.
물론 관리자가 수정한 게시물에만 허용된다.
wr_9 여분필드를 사용하니 중복되면 다른것으로 바꾸어야 한다..
출처: freeimage.kr 반드시 명시해주세요..
금지위치 : common.lib.php
// 악성태그 변환
function bad_tag_convert($code)
{
return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "<$1$2$3>", $code);
}
관리자의 필요에따라 게시물별로 허용하는 스킨을 만들자면
1. write.skin.php 에서 옵션부분 추가
if ($is_secret) {
if ($is_admin || $is_secret==1) {
$option .= "<input type=checkbox value='secret' name='secret' $secret_checked><span class=w_title>비밀글</span> ";
} else {
$option_hidden .= "<input type=hidden value='secret' name='secret'>";
}
}
if ($is_admin) {
$option .= "<input type=checkbox value='notbadtag' name='notbadtag' ".($write[wr_9]=="notbadtag"?"checked":"")."><span class=w_title>스크립트허용</span> ";
}
if ($is_mail) {
$option .= "<input type=checkbox value='mail' name='mail' $recv_email_checked>답변메일받기 ";
}
2. write_update.skin.php 끝에 추가
//2009-12-17 김성대 스크립트,태크 허용이면
if ($is_admin&&array_key_exists("notbadtag",$_POST)) {
$sql="update $write_table set wr_9='$_POST[notbadtag]' where wr_id='$wr_id'";
sql_query($sql);
}
3. view.skin.php 상단부분에 추가
if ($view[wr_9]=="notbadtag") {
$view[content]=str_replace("<","<",$view[content]);
$view[content]=str_replace(">",">",$view[content]);
$view[content]=str_replace("&","&",$view[content]);
}
수정에서 스크립트허용 을 check 하면 동영상등이 잘 보이게 될것이다.
물론 관리자가 수정한 게시물에만 허용된다.
wr_9 여분필드를 사용하니 중복되면 다른것으로 바꾸어야 한다..
출처: freeimage.kr 반드시 명시해주세요..
댓글목록
등록된 댓글이 없습니다.