Как быть с сессиями?
зачем?
сессия мутабельна по определению. ну и кагбе писать в нее можете только вы, а себя красавца от выстрела в коленку мало что спасет))
если уж очень надо, то пишите свой врапер для сессий, который сможет сделать определеные значения имутабельными, и работать с сессиями исключительно и только через него.
ну а на практике вы пытаетесь решить "Как быть, если в любом месте в коде можно вызвать DROP TABLE users"
да никак не быть, просто думать головой. это несложно.
a) Во время дебага проводить проверку на повторы кода с помощью регулярки и Notepad++.
b) Кодить нужно на свежую голову, естественно не ночью)