웹개발/PHP- 홈페이지 구현

검색 게시판_XSS 대응_htmlspecialchars()

duduranran 2023. 1. 4. 21:52

오늘은 PHP의 htmlspecialchars() Function을 사용해 XSS 취약점에 대해 시큐어 코딩을 해보았다.

 

htmlspecialchars() 함수는 일부 정의된 문자를 HTML 엔티티로 변환한다.

 

사전에 정의된 문자는 다음과 같다.

특수문자 변환된 문자
& &
" $quot;
' '
< &lt;
> &gt;

XSS에서는 공격자가 악의적인 스크립트를 삽입하는 공격이기에 

<script>를 못 쓰게 만들어야 한다. 여러가지 방안이 있지만 가장 좋은 대응책은 htmlspecialchars()함수를 사용하는것이다.

나의 웹사이트의 경우 

1. 게시판 검색창

2. 게시판 메인화면의 제목이 보여지는 곳(회원전용)

3. 게시판 메인화면의 제목, 작성자가 보여지는 곳(비회원문의)

4. 글을 들어가서 읽는 페이지의 제목, 내용

5. 기타 등등 

 

아래의 사진은 게시판 메인 페이지에 들어갔을 때 많은 글들이 주르륵 보여지는 부분이다.

그곳에 제목을 출력해 주고 있는데, 그곳의 값에 처리가 돼 있지 않으면 XSS취약점이 발생한다.

그래서 아래와 같이 처리해 주었다. 크

1
2
3
4
5
6
7
        <tr align="center">
            <td><?=$cnt?></td>
            <td><a href="read.php?No=<?=$data['No']?>"><?=htmlspecialchars($data['subject'])?></a></td>
            <td><?=$data['name']?></td>
            <td><?=$data['regdate']?></td>
            <td><?=$data['hit']?></td>
        </tr>
cs