2011-05-08 3 views

답변

15

예, 필요합니다.

그렇지 않으면 입력 데이터의 </textarea>이 마크 업을 엉망으로 만듭니다. 태그 안에 금지되고 엔티티가 여전히 디코딩되도록

<textarea> <--------------------------- Your tag 

    </textarea> <------------------------ User input  
    <script>alert("Hello!");</script> <-- User input, XSS injection 

</textarea> <-------------------------- Your tag 
+0

:) 멋진 예를 들어 주셔서 감사합니다! – kwichz

+0

그러나 팁 부분 만 텍스트 영역에서 "새로운 라인"으로 코딩하는 방법은 무엇입니까? \엔? chr (13)? – kwichz

+0

@kwichz'\ n'해야합니다. –

4

텍스트 영역 소자는 PCDATA을 포함하는 것으로 정의된다.

브라우저는 오류 수정을 수행하지만 오류 수정은 처음부터 오류가 발생하지 않았기 때문에 좋지 않습니다.

데이터가 &lt; 또는 </textarea> 일 때와 같이 일부 오류는 구문 오류가 아니기 때문에 수정되지 않습니다.

몇 가지 오류가 받아들이 기 쉬운 경우에도 유효성 검사기를 사용하여 기본 품질 보증을 수행하면 신경 쓰이는 오류가 발생할 수있는 잡음이 생성됩니다.

간단히 말해서, 예, 특별한 의미로 문자를 이스케이프해야합니다. 그러나 문자 인코딩을 직접 수행하면 htmlspecialchars이면 충분합니다.