2017-04-21 1 views
0

La partie du code sur laquelle je travaille est vulnérable aux XSS stockés. Voici le code.Comment faire pour contourner la vulnérabilité de script intersite stockée dans Asp.net C#

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  OnRowCancelingEdit="GridView1_RowCancelingEdit"  
      OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_OnRowDeleting" OnPageIndexChanging="GridView1_PageIndexChanging" Width ="1000px" class="grid"> 


     <Columns> 

      <asp:TemplateField HeaderText="User Name"> 
       <ItemTemplate> 
        <asp:Label ID="lbl_Name" runat="server" Text='<%#Eval("Uname") %>'></asp:Label> 
       </ItemTemplate> 
       <EditItemTemplate> 
        <asp:TextBox ID="txt_Name" runat="server" Text='<%#Eval("Uname") %>'></asp:TextBox> //this is the line vulnerable to XSS 
       </EditItemTemplate> 
      </asp:TemplateField>  </columns> 
</asp:GridView> 
Code

derrière

DataTable dt = new DataTable(); 
     try 
     { 
      SqlConnection con = new SqlConnection(conn); 
      con.Open(); 
      SqlDataAdapter adapt = new SqlDataAdapter("Select Uid,Uname,Utype,Uemail,ClientName,ProjectName,Ulog from usrtable where ClientName='" + clientname + "' and Utype='Admin' or ClientName='" + clientname + "'and Utype='Normal'", con); 
      **adapt.Fill(dt);**//this is again vulnerable 
      con.Close(); 
     } 

if (dt.Rows.Count > 0) 
       { 
        GridView1.DataSource = dt; 
        GridView1.DataBind(); 
       } 

Je ne suis pas familier avec XSS. J'ai parcouru beaucoup de documents. Il nous demande d'encoder les données. Mais dans mon cas, comment puis-je procéder.J'ai beaucoup d'étiquettes et de zones de texte comme modèles d'éléments dans GV. utiliser ceci pour mettre à jour les lignes de la table.

+0

Besoin behind. – Webbanditten

+0

J'ai modifié. veuillez vérifier le code source – Aswini

Répondre

0

Vous utilisez une requête Inline avec un paramètre ajouté à interroger.

Vérifiez lien ci-dessous pour injection SQL:

https://www.w3schools.com/sql/sql_injection.asp

Jetez également ci-dessous balise dans web.config

<system.web> 
    <pages buffer="true" validateRequest="true" /> 
</system.web>