Безопасность: внедрение $ _SERVER массива в переполнение стека

Я написал функцию PHP, которая записывает все в $_SERVER массив и, если есть определенный $_SERVER переменная, которая не существует в моей базе данных, он добавит этот столбец.

Мой вопрос таков: насколько безопасен этот звук для вас? После исследования и понимания информации заголовка возникают некоторые вопросы.

  1. Сможет ли клиент изменить определенные переменные, отправленные на сервер их агентом браузера или ОС?
  2. Будет ли кто-то, кто будет размещать сайт со своего собственного сервера, сможет вставить код в свой собственный $_SERVER массив?

В целом, я просто спрашиваю, насколько точно это звучит, но это были первые проблемы, которые приходят на ум.

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

3

Решение

$_SERVER Можно не быть доверенным. $_SERVER['HTTP_USER_AGENT'] содержит строку, которая легко настраивается пользователем — возможна инъекция SQL. Для этого есть даже плагины для браузера. На самом деле, есть много $_SERVER переменные, которые могут быть изменены пользователем, например, также $_SERVER['HTTP_ACCEPT_LANGUAGE'],

Взгляните на плагин Chrome ModHeader:

введите описание изображения здесь

4

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

Переменная $ _SERVER используется PHP для возврата информации о серверной информации, это не место для хранения данных. Честно говоря, впервые слышу, что кто-то хочет использовать $ _SERVER superglobal для хранения данных. Может быть, вы должны использовать $ _SESSION? Я думаю, что это правильный способ хранения данных, если база данных не вариант …

Также массив $ _SERVER, похоже, обновляется каждый раз, когда вы перезагружаете страницу. И на что @ByteHamster указал, что некоторые значения в переменной $ _SERVER могут быть подделаны.

Дело в том, что вы пытаетесь использовать то, что не предназначено для этой цели …

2

По вопросам рекламы [email protected]