2009-10-15 6 views
0

Je travaille sur un projet Web qui inclut un contrôle utilisateur (.ascx) qui se trouve dans un répéteur sur la page .aspx contenant. Il y a une DataList sur le contrôle de l'utilisateur qui est liée dynamiquement dans le code derrière. De sorte que la page parent/répéteur affecte les données (une liste) à une propriété du contrôle utilisateur, qui affecte ensuite cette source à la propriété DataSource de la liste de données. Est-ce que cela crée une vulnérabilité XSS?Contrôles utilisateur ASP.NET, ObjectDataSources et XSS

Dans ItemDataBound du répéteur est une ligne:

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

Dans le codebehind du .ascx (propriété DataSource):

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

Merci beaucoup.

Répondre

1

Cela dépend vraiment de votre modèle d'élément et de la façon dont vous affichez les données. D'où il vient et qu'il est dans un contrôle ascx est moins important. Je recommande d'échapper les données dans votre gestionnaire ItemDataBound, lors de la définition de DataSource.

Plus de détails sur MSDN pour la prévention XSS dans ASP.NET: How To: Prevent Cross-Site Scripting in ASP.NET

Voir aussi cet autre SO Question sur la bibliothèque AntiXSS: AntiXSS vs HtmlEncode