Я написал функцию PHP, которая записывает все в $_SERVER
массив и, если есть определенный $_SERVER
переменная, которая не существует в моей базе данных, он добавит этот столбец.
Мой вопрос таков: насколько безопасен этот звук для вас? После исследования и понимания информации заголовка возникают некоторые вопросы.
$_SERVER
массив?В целом, я просто спрашиваю, насколько точно это звучит, но это были первые проблемы, которые приходят на ум.
Если вы обнаружите, что что-то не так с тем, как я задал этот вопрос, пожалуйста, прокомментируйте, прежде чем вы проголосуете, и я немедленно его изменю.
$_SERVER
Можно не быть доверенным. $_SERVER['HTTP_USER_AGENT']
содержит строку, которая легко настраивается пользователем — возможна инъекция SQL. Для этого есть даже плагины для браузера. На самом деле, есть много $_SERVER
переменные, которые могут быть изменены пользователем, например, также $_SERVER['HTTP_ACCEPT_LANGUAGE']
,
Взгляните на плагин Chrome ModHeader:
Переменная $ _SERVER используется PHP для возврата информации о серверной информации, это не место для хранения данных. Честно говоря, впервые слышу, что кто-то хочет использовать $ _SERVER superglobal для хранения данных. Может быть, вы должны использовать $ _SESSION? Я думаю, что это правильный способ хранения данных, если база данных не вариант …
Также массив $ _SERVER, похоже, обновляется каждый раз, когда вы перезагружаете страницу. И на что @ByteHamster указал, что некоторые значения в переменной $ _SERVER могут быть подделаны.
Дело в том, что вы пытаетесь использовать то, что не предназначено для этой цели …