Ich bekomme immer wieder widersprüchliche Meinungen über die Praxis des Speicherns von Informationen im Thread.current
Hash (z. B. current_user, aktuelle Subdomain usw.). Die Technik wurde vorgeschlagen, um die spätere Verarbeitung innerhalb der Modellschicht (Abfrageumfang, Prüfung usw.) zu vereinfachen.
- Warum sind meine Thread-Variablen in Rails intermittierend?
- Alternative zur Verwendung von Thread.current im API-Wrapper für Rails
- Sind Thread.current [] -Werte und Attribute auf Klassenebene sicher in Rails zu verwenden?
Viele halten die Praxis für inakzeptabel, da sie das MVC-Muster bricht. Andere äußern Bedenken hinsichtlich der Zuverlässigkeit / Sicherheit des Ansatzes, und meine zweiteilige Frage konzentriert sich auf den letzteren Aspekt.
Ist der
Thread.current
Hash während seines gesamten Zyklus garantiert für eine und nur eine Antwort verfügbar und privat?Ich verstehe, dass ein Thread am Ende einer Antwort durchaus an andere eingehende Anfragen übergeben werden kann, wodurch alle darin gespeicherten Informationen verloren gehen
Thread.current
. Würde das Löschen solcher Informationen vor dem Ende der Antwort (z. B. durch AusführenThread.current[:user] = nil
von einem Controllerafter_filter
) ausreichen, um eine solche Sicherheitsverletzung zu verhindern?
Vielen Dank! Giuseppe