2009-10-15 4 views
0

저는 .aspx 페이지가 포함 된 리피터에 저장되어있는 사용자 정의 컨트롤 (.ascx)이 포함 된 웹 프로젝트에서 작업하고 있습니다. 코드 뒤에 동적으로 바인딩 된 DataList가 사용자 정의 컨트롤에 있습니다. 부모 페이지/리피터가 데이터 (List)를 사용자 정의 컨트롤의 속성에 할당하면이 소스가 DataList의 DataSource 속성에 할당됩니다. 이로 인해 XSS 취약점이 발생합니까? 의 .ascx (DataSource 속성)의 코드 숨김에서ASP.NET 사용자 정의 컨트롤, ObjectDataSources 및 XSS

<object>.DataSource = ((KeyValuePair<..., ...>)e.Item.DataItem).Value as <objecttype>; 

:

MyDataList.DataSource = value; 
MyDataList.DataBind(); 

덕분에 많은 리피터의하여 ItemDataBound에서

는 라인입니다.

답변

1

정말 항목 템플릿과 데이터 표시 방법에 따라 다릅니다. 그것이오고 ascx 통제에서 인 것은보다 적게 중요하다. DataSource를 설정할 때 ItemDataBound 핸들러에서 데이터를 이스케이프하는 것이 좋습니다.

ASP.NET에서 XSS 방지 MSDN 더 자세한 : AntiXSS vs HtmlEncode

: How To: Prevent Cross-Site Scripting in ASP.NET

또한 AntiXSS 라이브러리 약이 다른 SO 질문 참조

관련 문제