Я постійно отримую суперечливі думки щодо практики зберігання інформації в Thread.current
хеші (наприклад, поточний_користувач, поточний субдомен тощо). Ця техніка була запропонована як спосіб спрощення подальшої обробки в межах рівня моделі (масштабування запитів, аудит тощо).
- Чому мої змінні потоків перериваються в Rails?
- Альтернатива використанню Thread.current в обгортці API для Rails
- Чи безпечні значення Thread.current [] та атрибути рівня класу для використання у рейках?
Багато хто вважає цю практику неприйнятною, оскільки вона порушує схему MVC. Інші висловлюють занепокоєння щодо надійності / безпеки підходу, і моє двоскладове запитання зосереджується на останньому аспекті.
Чи
Thread.current
гарантовано хеш буде доступним та приватним для однієї і тієї самої відповіді протягом усього циклу?Я розумію, що потік в кінці відповіді цілком може бути переданий іншим вхідним запитам, тим самим витікаючи будь-яка інформація, що зберігається в
Thread.current
. ЧиThread.current[:user] = nil
будеafter_filter
достатньо очистити таку інформацію до кінця відповіді (наприклад, виконавши з контролера ) для запобігання такому порушенню безпеки?
Дякую! Джузеппе