You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
유용한 게시물입니다!<br />
<br />
window.location.href ='http://example.com';<br />
이 댓글의 위험을 제거하지 않으면 악의적인 코드가 데이터베이스에 주입되고 웹 사이트 마크<br />
업으로 출력될 수 있다. 웹 사이트 방문자가 이 댓글이 있는 페이지에 들어가면 유해한 웹 사이<br />
트로 이동하게 된다. 이런 불상사는 자신의 통제 범위 밖에 있는 입력 데이터의 위험을 왜 제거<br />
해야만 하는지 알려주는 단편적인 예시다. 내 경험상 가장 자주 접하는 입력 데이터는 HTML,<br />
SQL 쿼리, 사용자 정보(예: 이메일 주소, 전화번호)다.<br />
HTML<br />
HTML 특수문자(예: &, >, ″)는 htmlentities() 함수(http://php.net/manual/func<br />
tion.htmlentities.php)를 이용해서 각각에 해당하는 HTML 엔티티로 교체한다(예제 5-1 ).<br />
이 함수는 대상 문자열에 있는 모든 HTML 문자를 예외 처리하고 애플리케이션 저장소 계층에<br />
안전한 문자열로 변환한다.<br />
하지만 htmlentities ( ) 함수는 우둔하다. HTML 입력을 검증하지 않으며 기본적으로<br />
홑따옴표를 예외 처리하지 않는다. 입력 문자열의 문자 집합을 검출하지도 못한다. html<br />
entities() 함수를 사용하는 올바른 방법이 [예제 5-1]에 있다. 첫 번째 인수는 입력 문자열<br />
이다. 두 번째 인수는 ENT_QUOTES 상수며 홑따옴표를 인코딩하도록 지시한다. 세 번째 인수로<br />
는 입력 문자열의 문자 집합을 명시한다.<br />
예제 5-1 htmlentities( ) 함수로 입력 위험 제거하기<br />