Риск в использовании isset? - PullRequest
3 голосов
/ 26 марта 2011

Я новичок в PHP.

Мне посоветовали продезинфицировать $_GET и $_POST.Я следую этому совету.

Однако, если я просто хочу проверить переменную с помощью

if(isset($_GET['login']))

, нужно ли мне проводить какую-либо санитарную обработку?

Также, мне нужно дезинфицировать $_SESSION значений, которые я использую?

Ответы [ 5 ]

6 голосов
/ 26 марта 2011

Нет, вам не нужно выполнять какую-либо санитарную обработку или что-либо еще: isset() позволит вам проверить, является ли переменная (или массив элементов вваш случай) существует - и это во многом так.

Здесь, когда вы проверяете, существует ли элемент / переменная, вы не можете санировать ее: чтобы санировать данные, вам нужно ихсуществовать.


Обратите внимание, хотя: isset() вернет false, если этот элемент существует, но равен null!
Что, в случае элемента $_GET, скорее всего не произойдет.

1 голос
/ 26 марта 2011

Нет.Если вы просто хотите проверить, существует ли переменная или нет - тогда ваш код в порядке.

0 голосов
/ 26 марта 2011

Я думаю, что санитария не нужна, если вам нужно только проверить, установлен ли логин с ключом, лучше сделать это:

if(array_key_exists('login',$_GET))

Потому что еслиключ не установлен, ваш код выдаст сообщение об ошибке.

0 голосов
/ 26 марта 2011

Нет, нет.Но лучший способ сделать это будет:

if(key_exists('login',$_GET)) {
}
0 голосов
/ 26 марта 2011

Нет, в этом нет риска.

Требуется санация, прежде чем вы начнете использовать значения в $_GET / $_POST в своей бизнес-логике (например, создание запросов к базе данных с ее помощью или отображение ее пользователю как часть вашего вывода HTML); здесь вы просто тестируете, существует ли значение вообще.

...