Первое и главное правило с ЛЮБОЙ ввод, а не только $ _GET, но даже с $ _POST, $ _FILES и все, что вы читаете с диска или из потока, вы всегда должны VALIDATE.
Теперь, чтобы ответить на ваш вопрос более подробно, у вас есть несколько HACKS, которые существуют в этом мире.Позвольте мне показать вам некоторые:
XSS инъекции
Если вы принимаете данные из URL, такие как от $ _GET и вывода этой информации без зачистки возможных тегов, вы могли бы сделать ваш сайт склонной к XSS инъекции или инъекции кода. Например:
http://myhoturl.com/?search=<script>window.location.href="http://thisisahack.com/"</script>
Это приведет к удалению вашего сайта, и люди будут перенаправлены на другую страницу. Эта страница может быть фишинг попытка кражи учетных данных
SQL Injection
Можно вводить SQL для вашего приложения. Например:
http://myhoturl.com/?search=%'; UPDATE users SET password=MD5('hello'); SELECT * FROM users WHERE username LIKE '%
бы сделать ваш SQL выглядеть следующим образом:
SELECT * FROM articles WHERE title LIKE '%%'; UPDATE users SET password=MD5('hello'); SELECT * FROM users WHERE username LIKE '%%';
И, таким образом, вы бы обновить все пароля вашего пользователя к Hello, а затем вернуть то, что не соответствует.
Это всего лишь краткий обзор того, что вы можете сделать с помощью SQL-инъекции. Чтобы защитить себя, используйте mysql_real_escape_string или PDO или любой хороший уровень абстракции DB.
инъекции Код
Многие люди хотели бы включить данные где-то на диске и разрешить загрузку файлов. Например:
//File igotuploaded.txt
<?php echo 'helloworld'; ?>
И url позволяет вам ВКЛЮЧАТЬ файл по названию. ? Показать = myhotfile.txt
//In this file we include myhotfile.txt
include($_GET['show']);
Человек меняется, что показать = ../добавления/igotuploaded.txt и вы будете работать эхо 'Привет мир';
Это опасно.
правило ... не доверяйте USER ВХОДА, всегда проверять, предотвратить, проверить, исправить, утвердить и вновь правильно ...
Успехов
На будущее это моя функция защиты числовой значения в функции get (удалить функцию floatval() для не числовых значений get): 'addslashes (mysql_real_escape_string (strip_tags (floatval())));' –