Wie schützt man vor Manipulation der Abfragezeichenfolge?

8

Hii,

Ich habe eine Abfragezeichenfolge wie " Ссылка ". Die Operation wird nicht ausgeführt, wenn der Parameter 'userID' manuell geändert wurde. Wie ist das möglich?

    
Jibu P C_Adoor 11.05.2010, 09:16
quelle

8 Antworten

3

Hii all, danke für deine Hilfe ... und ich habe eine Art Lösung von anderen Seiten. Ich weiß nicht, dass das die beste Lösung ist. das heißt, den Wert mit einem Verschlüsselungs- und Entschlüsselungsalgorithmus zu verschlüsseln ... Der Beispielcode wurde so geschrieben ...

%Vor% %Vor%

Rufen Sie beim Laden der Seite 'Page1' den Dekodierungsalgorithmus auf, um die Abfragezeichenfolge zu dekodieren

%Vor% %Vor%     
Jibu P C_Adoor 11.05.2010, 12:07
quelle
3

Es klingt wie eine seltsame Anforderung. Versuchen Sie, eine Art von Sicherheit in Eigenregie zu implementieren? Wenn es so ist, solltest du wirklich nicht.

Wie auch immer, eine Möglichkeit wäre, die gesamte URL http://project/page1.aspx?userID=5 zu nehmen und ihre md5 summe . Dann fügen Sie die md5-Summe an die letzte URL an, z. B. http://project/page1.aspx?userID=5&checksum=YOURCALCULATEDMD5SUM . Dann müssen Sie in page1.aspx überprüfen, dass der Prüfsummenparameter korrekt ist.

Allerdings ist dieser Ansatz ziemlich naiv und es würde nicht lange dauern, bis jemand den Algorithmus, den Sie verwendet haben, herausgefunden hat. Wenn sie dies täten, könnten sie "leicht" die Benutzer-ID ändern und selbst eine MD5-Summe berechnen. Ein robusterer Ansatz wäre einer, bei dem die Prüfsumme mit einem Schlüssel verschlüsselt wurde, auf den nur Sie Zugriff hatten. Aber wieder muss ich dein Motiv dafür hinterfragen, denn es gibt andere Sicherheitslösungen, die viel besser sind.

    
Klaus Byskov Pedersen 11.05.2010 09:24
quelle
3

Sie können nicht.

Alles in der HTTP-Anfrage (einschließlich URL, Abfragezeichenfolge, Cookies, ...) unterliegt der Kontrolle des Clients und ist leicht zu fälschen.

Aus diesem Grund ist es wichtig, gültige Inhalte auf die Whitelist zu setzen, da der Client beliebig beliebige Einträge hinzufügen kann, die zusätzlich zu dem, was Sie erhalten möchten, hinzugefügt werden können.

    
Richard 11.05.2010 09:28
quelle
3

Hier ist eine weitere Option, die ich für meine Anforderungen unglaublich nützlich fand:

4 Guys From Rolla - Übergabe manipulationssicherer QueryString-Parameter

    
James 08.07.2013 14:03
quelle
2

Mein Favorit ist das Folgende. Es verwendet ein HTTP-Modul, um den Querystring mit dem expliziten Zweck des Manipulierens des Querystrings transparent zu codieren und zu dekodieren.

Ссылка

Es ist perfekt, wenn Sitzung keine Option ist!

    
ggonsalv 11.05.2010 13:51
quelle
1

Sie können nicht feststellen, ob es manuell geändert wurde. Wenn Sie Query-Strings verwenden, müssen Sie sicherstellen, dass es keine Rolle spielt, ob es geändert wird. z.B. Wenn Sie sie verwenden, um einem Benutzer ihre Kontodetails anzuzeigen, müssen Sie überprüfen, ob der ausgewählte Benutzer der aktuelle Benutzer ist und eine Fehlermeldung anstelle von Benutzerdaten anzeigt, falls dies nicht der Fall ist.

    
Ben Robinson 11.05.2010 09:24
quelle
1

Wenn der Benutzer zum Beispiel den Datensatz 5 ändern kann, aber nicht den Eintrag 7, muss dies serverseitig erzwungen werden. Dazu müssen Sie in der Lage sein, den Benutzer zu identifizieren, indem Sie eine Anmeldung verlangen und ihnen einen eindeutigen Sitzungsschlüssel zuweisen, der in ihrem Browser-Cookie oder als ein anderer Parameter in der URL-Abfragezeichenfolge gespeichert wird.

Es gibt reichlich Pakete / Module / Bibliotheken in man-Sprachen für den Umgang mit Authentifizierung und Sitzungen in einer vernünftigen Weise - rollen Sie selbst auf eigene Gefahr:)

    
Chris 11.05.2010 09:36
quelle
0

Nun - es kommt darauf an:)

Eine Möglichkeit besteht darin, userID in eine Sitzungsvariable zu schreiben. So kann der Benutzer den Wert nicht sehen oder bearbeiten.

Wenn Sie andere Mittel haben, um zu erkennen, ob der Wert ungültig ist (dh nicht existiert oder nicht für diesen Benutzer (den Sie auf andere Weise identifizieren können) oder Ähnliches, könnten Sie erhalten weg mit der Validierung der Eingabe selbst in Code hinter.

Aber wie Sie wahrscheinlich wissen, können Sie nicht verhindern, dass der Benutzer die Abfragezeichenfolge ändert.

    
scherand 11.05.2010 09:27
quelle

Tags und Links