일부 .NET에서 WebControls에 XSS 문제가 발생했습니다. 내 코드에서 뒤에 나는이 같은 foreach 문에 추가 된 많은 ListItems와 간단한 DropDownList로있어 : 드롭 생성 할 때, 옵션의 값 속성은 완전히 소독되지 않은DropDownList (WebControls)의 기본 .NET 위생화
foreach (string enumValue in aEnumValues)
pListBox.Items.Add(new ListItem(enumValue, enumValue));
하지만. 응답 본문의 옵션은 다음과 같습니다.
<option selected="selected" value=""><img src=2 onerror=alert(y65)>">"><img src=2 onerror=alert(y65)></option>
<option value="df">df</option>
<option value=""dsdf><img src=2 onerror=alert(y65)> "><img src=2 onerror=alert(y65)> ">"dsdf><img src=2 onerror=alert(y65)> "><img src=2 onerror=alert(y65)> </option>
볼 수 있듯이 모든 문자가 이스케이프되지는 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 아니면 WebControls에 문제가 있습니까?
이 어떻게 든 문서에서 언급 한 : Usally 옵션 태그의 값 속성은 정수 또는 코드와 같은 하나 개의 단어는? 리드 디자이너와 얘기하면서 백업이 필요하다는 뜻입니다. – Tenso
@Tenso 사용하는 컨트롤에 대해 잘 알고 있어야합니다. 공용 컨트롤 집합을 사용하고 자동으로 인코딩하는 경우 (개인 테스트를 통해) 알 수 있습니다. 공식 문서의 경우 [MSDN 목록 상자 클래스] (https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listbox (v = vs.85) .aspx) 페이지에 이 특정 문제에 대한 '주의'경고. – SBurris
@Tenso 또한 이전 게시물 (2008) [ASP.NET 컨트롤이 자동으로 인코딩되는 경우] (https://blogs.msdn.microsoft.com/sfaust/2008/09/02/which-asp-net-controls -automatically-encodes /) WebControls의 목록과 자동으로 인코딩을 수행하는지 여부를 포함합니다. 이 목록은 오래되었으므로 샘플 프로젝트에서 직접 컨트롤을 테스트하는 것이 좋습니다. – SBurris