본문 바로가기
배우고 있습니다/PHP

[PHP 기초] 금칙어 / 단어 필터링

by 유헤 2019. 11. 10.

금칙어 사용 불가

금칙어가 해당 내용에 있는지 확인

 

예시 1 

foreach ($cf_filter as $filter) {
    $filter = trim($filter);

    if (strstr($wr_subject, $filter))
        alert("제목에 금지단어({$filter})가 포함되어있습니다");

    if (strstr($wr_content, $filter))
        alert("내용에 금지단어({$filter})가 포함되어있습니다");
}

 

예시 2

 //넘어온 여분필드 내용(여분필드명이 word1인 경우
 $word1 = strip_tags($_POST['word1']);
 
 //환경설정 금지어
 $filter = explode(",", trim($config['cf_filter']));

 foreach($filter as $val)
 {
   if(stripos($word1, $val) !== false) {
            alert("내용에 금지단어(".$val.")가 포함되어 있습니다.");
            break;
   }
 }

 

strip_tags는 태그문자 제거해주는 명령어입니다.

explode는 첫번째 매개변수를 기준으로 두번째 매개변수를 자르는 함수입니다.

 

 

https://www.happyjung.com/lecture/417

http://www.dajoahe.com/board/bbs/board.php?bo_table=dataroom2&wr_id=233&sst=wr_datetime&sod=desc&sop=and&page=1

 

 

Htmlspecialchars() 사용

자바스크립트는 굉장히 활용도가 높으며, 사용자가 자바스크립트를 이용하여 웹페이지와 db상의 중요한 정보들을 탈취할 위험이 있다. 피싱에 악용 가능.

 

따라서 사용자가 정보를 입력하고 등록할 수 있는 영역에는 스크립트 코드를 아예 입력하지 못하게 하거나,

입력한 정보가 HTML로 그대로 표현되게 하는 기법을 사용하여, 그런 위험을 예방할 수 있다. 

php의 '자동변환 내장 함수'인 'htmlspecialchars()'를 이용하여!

 

htmlspecialchars()는 보안을 강화하는 중요한 API이다. 

 

사용자가 입력한 정보가 표시되는 영역은 제목, 글쓴이, 본문 영역이다. 

출처: https://zbulletjournal.tistory.com/66 [하위!]

 

필터 기능 사용하기

https://sergeswin.com/195