Ich bin mir nicht sicher, ob ich bei jeder Anfrage zufällig einen eindeutigen "state" -Parameter erzeugen muss, oder ob ich immer denselben String verwenden und als Konstante speichern kann.Sollte der OAuth 2.0-Parameter "state" für jede Anforderung eindeutig sein oder kann er gespeichert werden?
1
A
Antwort
3
Die beste Vorgehensweise besteht darin, einen "zufälligen" Wert zu verwenden.
Es gibt keine Anforderung, dass es "wirklich" einzigartig ist.
Es sollte jedoch vom Client verwendet werden, um die Sitzung zu verfolgen. Wenn bei jeder Anfrage derselbe State-Parameter gesendet wurde, besteht die Gefahr, dass ein Intercepter eine ähnliche Reaktion wie Cross-Site-Scripting-Attacken erzeugt.
Best Practice wäre die Verwendung eines "zufälligen" Wertes für jede Anfrage, die sich theoretisch nicht wiederholt.
-jim
Verwandte Themen
- 1. Sollte serialVersionUID für verschiedene Klassen eindeutig sein?
- 2. Wie sollte Redux State Anatomie sein?
- 3. Sollte ein Software-Service vollständig eigenständig sein oder kann/sollte er Teil einer größeren Komponente sein?
- 4. Express-Sitzung kann Sitzungswerte für nächste Anforderung nicht gespeichert werden
- 5. Wie Refresh-Token gespeichert werden sollte
- 6. Ist der SignalR-Empfangsport zufällig oder kann er vordefiniert sein?
- 7. Wie ein Feld für jede Gruppe eindeutig?
- 8. Wo sollte der Ordner phpmyadmin gespeichert werden?
- 9. Bewertung des Login-Status für jede Anfrage bei Authentifizierung mit OpenID, OAuth und/oder OAuth 2.0
- 10. Machen Sie Formular Eingabefeld eindeutig für jede
- 11. Ein der Benutzer-ID zugewiesenes Primärschlüsselfeld sollte ebenfalls eindeutig sein oder ist redundant?
- 12. Wie kann Spring OAuth Token verschlüsselt werden?
- 13. Suppress Fehler in Django REST Framework "Feld sollte eindeutig sein"
- 14. Ist der iPhone Simulator UDID für jede installierte Instanz eindeutig?
- 15. Wann sollte ein Konstruktor öffentlich werden und wann sollte er paket-privat sein?
- 16. Muss SharedPreferences Name eindeutig sein?
- 17. SQL-Abfrage - eindeutig oder eindeutig?
- 18. C#: Sollte der Standardwert einer Enum None oder Unknown sein?
- 19. Sollte Passwort-Hash in binärer oder hexadezimaler Nummer gespeichert werden?
- 20. Ist der Netty-Handler für jede Verbindung eindeutig?
- 21. Partitionierung für JdbcCursorItemReader - Der Reader muss geöffnet sein, bevor er gelesen werden kann
- 22. Wo kann der AES-Schlüssel gespeichert werden?
- 23. Name des Index muss in der Datenbank eindeutig sein?
- 24. Muss die Elasticsearch ID für einen Typ oder für den Index eindeutig sein?
- 25. Sollte der WCF-Dienst normalerweise Singleton sein oder nicht?
- 26. Wie kann ein Pharo-Bild automatisch jede Stunde gespeichert werden?
- 27. Sollte Logger privat statisch sein oder nicht
- 28. Hive-Tabelle oder Ansicht? Was sollte der richtige Ansatz sein?
- 29. Sollte IBOutlet schwach oder stark sein?
- 30. Müssen Clustered-Indizes eindeutig sein?
Ich stimme dir zu. Zusätzlich zu dieser Antwort möchte ich mit Ihnen [diesen Spezifikationsentwurf] (https://tools.ietf.org/id/draft-bradley-oauth-jwt-encoded-state) teilen, der versucht, einen Mechanismus vorzuschlagen, bei dem es mehrere gibt Statusattribute können in einem JWT codiert werden. In diesem Fall ist der Zustandsparameter kein zufälliger Wert (kann aber eindeutig sein). –