Безопасность: что может пойти не так, если пользователи смогут называть переменные сеанса?

Итак, я только что нашел какой-то супер тревожный код одновременно в некотором классическом коде ASP, а также в некотором PHP.

Классический ASP:

Dim id
id = request.form("id")

Session(id) = id

PHP

$_SESSION[$_GET["id"]] = $_GET["id"];

Итак, что здесь может пойти не так? Обратите внимание, очевидно, я буду удалять их и использовать лучший рабочий процесс.

РЕДАКТИРОВАТЬ: Очевидными проблемами могут быть SQLi, XSS, перезапись существующих и необходимых переменных сеанса. Я действительно не знаю внутреннюю работу того, как эти языки обрабатывают переменные сессии.

РЕДАКТИРОВАТЬ 2: Я не особо обеспокоен значениями переменной сеанса, так как меня беспокоит возможность их именования. Просто любопытно, есть ли что-то сумасшедшее, что вы можете сделать с произвольными именами переменных.

5

Решение

Я могу установить любое количество переменных сеанса — скажем, a1 a2 a3 a4 и так далее. Это своего рода вектор атаки, верно? Атака памяти ..

Если вы когда-либо будете использовать переменные этого сеанса в запросе mysql — классический случай внедрения SQL (не большая угроза в этом случае, если у вас есть надлежащая безопасность)

Как кто-то упомянул в комментарии, если вы когда-либо повторяете переменную сеанса, существует возможность XSS (межсайтовая инъекция).

Если вы используете его в формах атак типа CSRF и много чего еще.

Зачем использовать $ _SESSION [$ GET [‘var’]], когда есть миллион других возможных вещей 🙂

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector