@dev400

Как быть с сессиями?

Как быть, если в любом месте в коде можно написать $_SESSION['user'] = 'admin';

Как защитить модификацию сессий?
  • Вопрос задан
  • 255 просмотров
Решения вопроса 1
DevMan
@DevMan
зачем?
сессия мутабельна по определению. ну и кагбе писать в нее можете только вы, а себя красавца от выстрела в коленку мало что спасет))

если уж очень надо, то пишите свой врапер для сессий, который сможет сделать определеные значения имутабельными, и работать с сессиями исключительно и только через него.

ну а на практике вы пытаетесь решить "Как быть, если в любом месте в коде можно вызвать DROP TABLE users"
да никак не быть, просто думать головой. это несложно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
мало ли что в коде написать можно, вы не путаете серверную часть с клиентской случайно?
Ответ написан
kursorik2
@kursorik2
Junior-Developer
a) Во время дебага проводить проверку на повторы кода с помощью регулярки и Notepad++.
b) Кодить нужно на свежую голову, естественно не ночью)
Ответ написан
@Vicom
блин ну реально выше сказали вон)

- сделайте враппер, меняйте через какой-нибудь собственный

Session::setAccessLevel(Auth::ACCESS_GROUP_ADMIN);

.., который бы контролировать уже где это можно, а где нет через тот же debug_backtrace (и только так, типа) т.е.:

- сделайте запрет как-нибудь на прямую работу с _SESSION хз, или

- бейте по рукам при его вызове (всё должно быть по регламенту через свои интерфейсы/классы/обёртки или фреймворка. если человек делает c _SESSION / _GET / _POST etc. это уже насторожить должно, если апликуха написана на fw), на худой конец

- коменты / сопутствующие доки к проекту прилагайте, типа "так нельзя", "а тут сам себе злой оленевод будешь" и т.п.

.., а вообще от всех возможных чужих дуростей не спасёшься
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы