HTML.Encode () - Was / Wie verhindert es Skripting-Sicherheitsprobleme in ASP.NET?

8

Welchen Sicherheitsschutz bietet mir HTML.Encode (), wenn ich mit Benutzereingaben, speziell mit Skriptproblemen, zu tun habe?

    
Achilles 18.06.2009, 19:03
quelle

2 Antworten

20

Siehe Server.HTMLEncode :

  

Die HTMLEncode-Methode wendet HTML an   Codierung in eine angegebene Zeichenfolge. Dies   ist nützlich als eine schnelle Methode von   Kodierung von Formulardaten und anderen Clients   Daten anfordern, bevor Sie sie in Ihrem verwenden   Internetanwendung. Daten kodieren   konvertiert potenziell unsichere Zeichen   zu ihrem HTML-kodierten Äquivalent.

     

Wenn die zu codierende Zeichenfolge nicht ist   DBCS, HTMLEncode konvertiert Zeichen   wie folgt:

     
  • Das Kleiner-als-Zeichen (& lt;) wird in < konvertiert.
  •   
  • Das Größer-als-Zeichen (& gt;) wird in > konvertiert.
  •   
  • Das kaufmännische Und-Zeichen (& amp;) wird in & konvertiert.
  •   
  • Das doppelte Anführungszeichen (") wird in " konvertiert.
  •   
  • Beliebiges ASCII-Codezeichen, dessen Code größer als oder gleich 0x80 ist   wird in &#<number> konvertiert, wobei    ist der ASCII-Zeichenwert.
  •   

Das bedeutet, dass wenn Sie einige Daten in den Anfragestream ablegen und diese Daten in einem benutzerdefinierten Feld in der Datenbank gespeichert werden, verhindern, dass Benutzer sagen können, dass ihr Vorname lautet:

%Vor%

In diesem Beispiel würde Server.HTMLEncode die Zeichen < , > und " codieren und dabei Folgendes beibehalten:

%Vor%

welches, wenn es im Browser gerendert wird, so aussieht:

  

& lt; Skripttyp="text / javascript" & gt;      Funktion doSomethingEvil () {/ * ... * /}   & lt; / script & gt;

statt tatsächlich auszuführen.

    
Andrew Hare 18.06.2009, 19:06
quelle
2

Es verhindert XSS-Angriffe (Cross Site Scripting), wenn es verhindert, dass Benutzereingaben in Skripts umgewandelt werden, die für diese Art von Angriffen verwendet werden können

    
BlackTigerX 18.06.2009 19:09
quelle

Tags und Links