Точно и подробно про защиту от инъекций в php, mysql?
$login = trim($_GET['login']);
  $login = strip_tags($login);
  $login = mysqli_real_escape_string($mysqli, $login);
Почему вы думаете, что нужно менять логин пользователя, если она захотел именно такой? хочет быть <script> - пусть будет. Не ограничивайте.
нужно различать sql-инъекцию и xss-атаку
т.е. если мы пишем в базу, то
 $login = mysqli_real_escape_string($mysqli, $login);
query( insert into ... );
Далее выводим на страницу
$login = query( select from ... );
echo  htmlspeialchars($login);
И все счастливы.Если у вас будет время, напишите, пожалуйста, как бы Вы написали данный код. Мне просто интересно, посмотреть на правильно реализованный код.
Код писать лень, хотя я там выше  в принципе его уже написал =) только вместо mysqli_real_escape_string в реальном коде я бы использовал подготовленные выражения (и PDO вместо mysqli, хотя тут наверное, дело вкуса).
$login = trim($_GET['login']);
  $login = strip_tags($login);
  $login = mysqli_real_escape_string($mysqli, $login);
Почему вы думаете, что нужно менять логин пользователя, если она захотел именно такой? хочет быть <script> - пусть будет. Не ограничивайте.
нужно различать sql-инъекцию и xss-атаку
т.е. если мы пишем в базу, то
 $login = mysqli_real_escape_string($mysqli, $login);
query( insert into ... );
Далее выводим на страницу
$login = query( select from ... );
echo  htmlspeialchars($login);
И все счастливы.Если у вас будет время, напишите, пожалуйста, как бы Вы написали данный код. Мне просто интересно, посмотреть на правильно реализованный код.
Код писать лень, хотя я там выше  в принципе его уже написал =) только вместо mysqli_real_escape_string в реальном коде я бы использовал подготовленные выражения (и PDO вместо mysqli, хотя тут наверное, дело вкуса).