Wo ist die „richtige“ Stelle zu überprüfen, ob ein Abfragezeichenfolgeflag manipuliert wurde?

StackOverflow https://stackoverflow.com/questions/4357259

Frage

Ich will Abfragezeichen „Kontrolle“ und Protokollierung im Falle eines „manipuliert“ querystrings hinzuzufügen. Ist das Page_Init Ereignis auf einer bestimmten Seite genau richtig, dass in der ASP.Net Seite Lebenszyklus zu tun?

War es hilfreich?

Lösung

Meine Regel ist alles so früh wie möglich zu tun. Dies könnte sogar so früh wie Application.BeginRequest (welche Ereignisse eintritt, bevor die Seite wird auch geladen), so lange wie Query-String-Überprüfung ist nicht Seite abhängig.

einschliessen

Die Frage ist: „Was Sie Manipulation betrachten?“ Ungültige Schlüssel? Ungültige Werte? Versuche, kodieren Tags, die hoffentlich auf die resultierende Seite geschrieben werden könnte als Teil eines XSS-Angriff?

Es ist schwer, jede Art von spezifischem Rat zu geben, ohne mehr zu wissen über das, was Sie versuchen zu erreichen.

Bearbeiten : Um die Anwendungsereignisse zuzugreifen, fügen Sie ein Global Application Class , um Ihr Projekt von der 'Neues Element hinzufügen' Option

.

Jede Anfrage löst den Application Lifecycle und die Seite Lebenszyklus nur ein Teilprozess innerhalb dass, wenn der Request-Handler geschieht eine aspx Datei sein.

EDIT2 : Reinigung Query-String-Daten hängt ganz davon ab, was Sie die Daten für verwenden. Einige potenziell gefährliche Anwendungen für Query-String-Daten enthalten:

  • Werte für einen SQL-Befehl . SQL-Injection können weitgehend durch die Verwendung 'parametrisiert Abfragen' abgemildert werden
  • Dateispeicherorte . Dieses verwendet werden könnte, um den Server Husten bis jede Datei auf der Festplatte, wenn NTFS-Berechtigungen auf dem Server machen lax sind
  • Werte in die HTML-Antwort geschrieben : Ein Benutzer könnte ein Tag kodieren und einige JavaScript ausführen. Achten Sie darauf, Verwendung Server.Encode () oder manuell die Zeichenfolge reinigen.
  • ID-Wert : Wenn Sie den Query-String zum Speichern von ID-Werten verwenden, ein Benutzer der mit anderen im Versuch, Zugang zu Informationen über die Dinge ersetzen könnte, sollten sie nicht sehen, ein Beispiel hierfür kann sein:

    http://domain.com/somepage.aspx?userid=1343243

Der Benutzer macht eine Vermutung und ändert dies:

http://domain.com/somepage.aspx?userid=0

Und das könnte den Benutzer admin bringen.

Andere Tipps

Was wir in unserem Projekt verwenden Verschlüsseln und Entschlüsseln von Abfragezeichenfolgeflag folgen. Ich kann Ihnen diese Klasse für Ver- und Entschlüsselung Funktion senden. Aber als Referenz können Sie mit folgenden URL starten, wenn es hilft.

http://geekswithblogs.net/casualjim/articles/64639.aspx

Jetzt in diesen, wenn sie temperiert wird, ist es nicht entschlüsselt werden kann. Sie können auf Seitenebene Ausnahme für sie und Umleitung auf die richtige Fehlerseite schreiben.

Lassen Sie mich wissen, wenn Sie mehr Informationen zu einem bestimmten Punkt benötigen.

Prost !!!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top