Най-добрият начин да избегнете инжекциите е да използвате Подготвени изявления
.
За подготвени изявления предпочитам да използвам PDO, за да се справя с всички мои DB неща. ето примерен код на PDO, който написах, за да извлека основна информация за вход:
$sql=new PDO("mysql:host=127.0.0.1;dbname=name","user","password");
$user=$_POST[user];
$query="select Salt,Passwd from User
where Name=:user";
$stmt=$sql->prepare($query);
$stmt->bindParam(':user',$user);
$stmt->execute();
$dr=$stmt->fetch();
$sql=null;
$password=$_POST[pass];
$salt=$dr['Salt'];
... и т.н.
Прочетете това страница за повече информация относно ЗНП. Ако искате да знаете какво прави всеки ред код тук, прочетете това отговор дадох на друг пост.