제목에 특정 html코드 못쓰게

제목에 특정 html코드 못쓰게

QA

제목에 특정 html코드 못쓰게

본문

글제목에 html코드를 허용하고 있는데

제목란에 유튜브 iframe소스를 넣었더니 그 밑으로 오류가 쫙 생기네요ㅎ

그렇다고 모든 html코드를 제한하자니 좀 그렇고

<b></b>나 <font color="red"></font> 같이 글제목에 쓸만한 코드는 허용하되

iframe이나 링크 등은 제한하는 방법이 있을까요?

이 질문에 댓글 쓰기 :

답변 3

* [스킨디렉토리]/write_update.head.skin.php (생성)


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 제목에서 허용할 HTML 태그 목록
$allowed_title_tags = '<b><strong><font><i><em><u><s><span>';
// HTML 태그 필터링
if (isset($_POST['wr_subject'])) {
  // 허용된 태그만 남기고 나머지는 모두 제거
  $_POST['wr_subject'] = strip_tags($_POST['wr_subject'], $allowed_title_tags);
}
?>

※ 제목란에 HTML 코드를 허용하면서 특정 태그만 제한하고 싶으시다면,

서버 측에서 HTML 태그를 필터링하는 기능을 구현하는 것이 좋습니다.

예를 들어, 허용된 태그 목록만 유지하고 나머지 태그는 제거하는 방식으로

입력을 처리할 수 있습니다.

 

PHP에서는 strip_tags 함수에 허용 태그를 지정하거나,

HTML Purifier와 같은 라이브러리를 사용하는 방법도 있습니다.

이렇게 하면 <b><font> 등 허용된 태그는 유지하면서도

<iframe>이나 <script> 같은 태그는 자동으로 제거되어

보안과 기능성을 동시에 확보할 수 있습니다.

<?php echo strip_tags($view['wr_subject'],'허용할태그'); ?>

예를들어서 font 만 허용할 경우
<?php echo strip_tags($view['wr_subject'],'<font>'); ?>

font 와 b 태그를 허용할경우
<?php echo strip_tags($view['wr_subject'],'<font><b>'); ?>

이렇게 넣으시면 됩니다.

 

위는 view.skin.php 를 기준으로 한것이기 때문에 게시판 리스트에서 하시려면
$view['wr_subject'] -> $list[$i]['wr_subject'] 이렇게 수정하시면 됩니다.

다른 방법으로는

htmlspecialchars 과 preg_replace 가 있습니다

답변을 작성하시기 전에 로그인 해주세요.
전체 127,338 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT