2013-07-27 3 views
2

У меня есть важный вопрос, и я не знаю, что искать, поэтому я прошу вас, ребята, о помощи.Нужно ли мне избегать всех массивов GET?

Мне нужно, чтобы избежать такого рода коды ли: (? Результат будет что-то вроде index.php Нк = loginerror)

<?php if(isset($_GET['hk']) && $_GET['hk'] == "loginerror") { echo "error"; } ?> 

Или я должен оставить его неэкранированный? Могут ли хакеры «взломать», если я не использую бегство?

Спасибо.

+0

ERR ... что делает 'MySQL реальном спусковое string' тег с кодом выше? –

+2

Это не выход, это подтверждается. – bansi

+0

Экранирование зависит от контекста, а не ленивое решение для утверждения переменных путей. См. Http://kunststube.net/escapism/ и [Что является лучшим методом для дезинфекции ввода пользователя с помощью PHP?] (Http://stackoverflow.com/q/129677) – mario

ответ

-2

NO.

Вам не следует избегать ни одного массива $ _GET.

+2

вы можете объяснить, почему? – JohnnyFaldo

1

Вам необходимо избегать (или кодировать в зависимости от контекста) специальные символы в пользовательском вводе, когда вы используете его в сгенерированном коде или форматах данных (например, если вы поместили его в SQL-запрос, документ HTML, файл JSON, и т.д).

Если вы просто сравниваете его со строкой или видите, существует ли она, нет смысла ее избегать.

+0

«Побег» - не правильное слово. –

+1

[* escape *, 3. cause (последующий символ или символы), которые будут интерпретироваться по-разному] (http://oxforddictionaries.com/definition/english/escape?q=escape) – Quentin

1

Всегда рекомендуется удалять или стирать строку при отправке информации, чтобы ограничить хакеров обнаружением каких-либо недостатков безопасности.

Кроме того, никогда не используйте метод $ _GET при отправке конфиденциальной информации по сети, а используйте метод $ _POST.

Используя методы $ _GET показывает, какие переменные являются разбираемый и эта информация может быть очень и очень важным и влиятельным хакеру

Смежные вопросы