Vermeidet die Eliminierung gefährlicher Zeichen die SQL-Injection?

Es gibt viele hervorragende Möglichkeiten, um Anwendungen gegen SQL-Injections zu sichern. Diese Fragen und Antworten zeigen beispielsweise einige Möglichkeiten aufWie vermeide ich SQL Injection in PHP?.

Bei dieser Frage handelt es sich um eine bereits schriftliche Bewerbung. Wir möchten es nicht modifizieren, um seine Sicherheit zu verbessern. Wir möchten wissen, ob die verwendete Methode für Injektionsangriffe anfällig ist oder nicht.

Wir müssen wissen, dass dieser Teil des Codes der Grund für die Datenlecks ist oder nicht?

Hier ist eine PHP-Funktion, um einige nutzlose (für uns) und möglicherweise schädliche Zeichen zu eliminieren:

function removeBadCharacters($s)
{
   return str_replace(array('&','<','>','/','\\','"',"'",'?','+'), '', $s);
}

Es wirft gefährliche Zeichen aus, um einen SQL-Injection-Angriff zu vermeiden(Sorgen Sie sich nicht um entfernte Zeichen wie&<>/\"'?+ die Anwendung braucht sie nicht):

$x = removeBadCharacters($_POST['data']);

mysql_query("insert into table (x) values ('".$x."');");

mysql_query("select * from into where name = '".$x."';"); 

Ist es genug, um die Abfragen sicher zu machen?

Gibt es eine Möglichkeit zu umgehenremoveBadCharacters?

Wie kann es kaputt gehen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage