DTO было бы применимо к приложению на Symfony, однако мыслите в верную сторону.
В моделях Laravel есть поле $fillable, которое отвечает за то, какие данные доступны для записи через mass assignment.
Так же, есть Form Validation, который формирует список правил, которые применятся к телу запроса.
Всё детально описано в документации.
Насколько я помню, сейчас Microsoft прекратил поддержку старых IE, то есть актуальные - IE11 & Edge.
Они поддерживают flex.
Остальным недотяпам с IE можно показать warning с содержимым вроде "you're using ancient browser, upgrade'.
На территории Российской Федерации термин Гбайт обязан использоваться для обозначения 230 = 1 073 741 824 байт, согласно постановлению Правительства РФ, принятому в 2009 году:
Ибо переменная находится в глобальном контексте.
Попробуйте в начале функции indexAction написать global $bb.
И, в любом раскладе, это очень плохая практика.
1) создаем токен
2) пишем в сессию
3) добавляем в нужные места во вьюхах. например, hidden-поля в формы или устанавливаем какой-нибудь заголовок, если запросы делаются через AJAX
4) при каждом POST/DELETE/PUT/PATCH запросах проверяем входной токен и токен в сессии. не совпали = пока.