2010-06-28 5 views
7

.net 4와 함께 < % = %>와 같은 새로운 < % : %> 스크립트 인클로저가 있지만 html 인코딩을 사용합니다. 사람들은이 새로운 구문의 사용을 권장합니다.<%: %> 대 마이크로 소프트의 안티 XSS 라이브러리

제 질문은% : %>가 XSS를 방지하거나 Microsoft Anti XSS 라이브러리를 사용하는 것을 방지합니까?

Microsoft 보안 담당자는 HTML 암호화가 잘 보호되지 않으며 항상 Anti XSS 라이브러리 (또는 다른 라이브러리)를 사용해야하므로 한 번도 HTML 인코딩을 사용하지 말라고했습니다. < % : %>와 (과) 여전히 동일합니까? 또는 나는 사람들이 말하는 것처럼 XSS로부터 내 앱을 보호 할 것이라는 것을 안다면 < % : %>을 자신있게 사용할 수 있습니까?

답변

9

HttpUtility.HtmlEncode 잠재적 위해 열려 문을 나뭇잎 블랙리스트 (배제의 원칙) 인코딩 방식을 사용합니다 미래에 새로운 익스플로잇을 발견 할 수 있습니다. Anti-XSS library (현재 웹 보호 라이브러리로 알려져 있으며 SQL 주입을 완화하는 코드도 포함) 문을 조금 더 닫고 보안을 강화해야하는 허용 목록 접근 방식 (흠집 원칙)을 사용합니다.

<%: ... %><%= Server.HtmlEncode(string) %>의 바로 가기이므로 응용 프로그램에 사용되는 인코더의 보안을 제공합니다.

새로운 <%: ... %> 구문을 사용하여 원하는 인코더를 사용할 수 있으며 Phil Haack은 hooking up the Anti-Xss library as the default encoder에 대한 글을 올렸습니다. 현재 Anti-XSS 라이브러리 3.1은 중간 신뢰를 실행해야 함을 명심하십시오. 이는 향후 릴리스에서 다루어집니다.

+0

<%: %>을 다른 인코더에 연결하는 것에 대해 몰랐습니다. 그거 꽤 멋지다. – dtc

1

새 구문은 HTML의 원시 텍스트 콘텐츠를 이스케이프하는 데에만 사용해야합니다. EDIT : 및 특성.

속성, 자바 스크립트, 그리고 다른 컨텍스트, 여전히 안티 - XSS 라이브러리를 사용한다

+0

Anti-XSS 라이브러리는 HTML 및 속성 인코딩에도 안전한 인코딩을 제공합니다. – orip

관련 문제