SQL Injection ist eine Code-Injection-Technik, mit der datengesteuerte Anwendungen angegriffen werden, bei der böswillige SQL-Anweisungen zur Ausführung in ein Eingabefeld eingefügt werden (z. B. um den Datenbankinhalt an den Angreifer zu senden).
Die Antworten dieser Frage sind eine Gemeinschaftsanstrengung . Bearbeiten Sie vorhandene Antworten, um diesen Beitrag zu verbessern. Derzeit werden keine neuen Antworten oder Interaktionen akzeptiert. Эа этот вопрос есть ответы на Stapelüberlauf на русском : Каким образом избежать SQL-инъекций в PHP? Wenn Benutzereingaben ohne Änderung in eine SQL-Abfrage eingefügt werden, …
Gibt es irgendwo eine Catchall-Funktion, mit der Benutzereingaben für SQL-Injection- und XSS-Angriffe bereinigt werden können, während bestimmte Arten von HTML-Tags weiterhin zulässig sind?
Nur anschauen: (Quelle: https://xkcd.com/327/ ) Was macht diese SQL: Robert'); DROP TABLE STUDENTS; -- Ich kenne beide 'und bin --für Kommentare, aber wird das Wort DROPnicht auch kommentiert, da es Teil derselben Zeile ist?
Angenommen, ich habe folgenden Code: $dbh = new PDO("blahblah"); $stmt = $dbh->prepare('SELECT * FROM users where username = :username'); $stmt->execute( array(':username' => $_REQUEST['username']) ); In der PDO-Dokumentation heißt es: Die Parameter für vorbereitete Anweisungen müssen nicht in Anführungszeichen gesetzt werden. Der Fahrer erledigt das für Sie. Ist das wirklich alles, …
Gibt es eine SQL-Injection-Möglichkeit, auch wenn die mysql_real_escape_string()Funktion verwendet wird? Betrachten Sie diese Beispielsituation. SQL ist in PHP wie folgt aufgebaut: $login = mysql_real_escape_string(GetFromPost('login')); $password = mysql_real_escape_string(GetFromPost('password')); $sql = "SELECT * FROM table WHERE login='$login' AND password='$password'"; Ich habe zahlreiche Leute zu mir sagen hören, dass solcher Code immer noch …
Wie helfen uns vorbereitete Anweisungen , SQL-Injection- Angriffe zu verhindern? Wikipedia sagt: Vorbereitete Anweisungen sind widerstandsfähig gegen SQL-Injection, da Parameterwerte, die später mit einem anderen Protokoll übertragen werden, nicht korrekt maskiert werden müssen. Wenn die ursprüngliche Anweisungsvorlage nicht von externen Eingaben abgeleitet ist, kann keine SQL-Injection durchgeführt werden. Ich kann …
Ich versuche, eine Anti-SQL-Injektion in Java zu installieren, und finde es sehr schwierig, mit der String-Funktion "replaceAll" zu arbeiten. Letztendlich brauche ich eine Funktion, die alle vorhandenen \in \\, alle "in \", alle 'in \'und alle \nin konvertiert , \\ndamit bei der Auswertung der Zeichenfolge durch MySQL SQL-Injektionen blockiert werden. …
Mir ist klar, dass parametrisierte SQL-Abfragen die optimale Methode sind, um Benutzereingaben zu bereinigen, wenn Abfragen erstellt werden, die Benutzereingaben enthalten. Ich frage mich jedoch, was falsch daran ist, Benutzereingaben zu übernehmen und einfache Anführungszeichen zu umgehen und die gesamte Zeichenfolge mit einfachen Anführungszeichen zu umgeben. Hier ist der Code: …
Ich weiß, dass PreparedStatements SQL Injection vermeiden / verhindern. Wie macht es das? Wird die endgültige Formularabfrage, die mit PreparedStatements erstellt wird, eine Zeichenfolge oder eine andere sein?
Heute wurde eine Frage zu Eingabevalidierungsstrategien in Web-Apps gestellt . Die Top-Antwort zum Zeitpunkt des Schreibens schlägt vor, PHPnur htmlspecialcharsund zu verwenden mysql_real_escape_string. Meine Frage ist: Ist das immer genug? Gibt es mehr, was wir wissen sollten? Wo brechen diese Funktionen zusammen?
Ich bin sehr neu in der Arbeit mit Datenbanken. Jetzt kann ich schreiben SELECT, UPDATE, DELETE, und INSERTBefehle. Aber ich habe viele Foren gesehen, in denen wir lieber schreiben: SELECT empSalary from employee where salary = @salary ...anstatt: SELECT empSalary from employee where salary = txtSalary.Text Warum bevorzugen wir immer …
In Bezug auf die SQL-Injection verstehe ich die Notwendigkeit, einen stringParameter zu parametrisieren, vollständig . Das ist einer der ältesten Tricks im Buch. Aber wann kann es gerechtfertigt sein, eine nicht zu parametrisieren SqlCommand? Werden Datentypen als "sicher" angesehen, um nicht parametrisiert zu werden? Zum Beispiel: Ich habe mich nicht …
Wir haben hier eine weitere Diskussion über die Verwendung parametrisierter SQL-Abfragen in unserem Code. Wir haben zwei Seiten in der Diskussion: Ich und einige andere, die sagen, wir sollten immer Parameter verwenden, um uns vor SQL-Injektionen zu schützen, und die anderen, die es nicht für notwendig halten. Stattdessen möchten sie …
Ich verstehe, dass Sie Benutzereingaben aus einem Formular NIEMALS vertrauen sollten, hauptsächlich aufgrund der Möglichkeit einer SQL-Injection. Gilt dies jedoch auch für ein Formular, bei dem die einzige Eingabe von einem Dropdown (s) stammt (siehe unten)? Ich speichere das $_POST['size']in einer Sitzung, die dann auf der gesamten Site verwendet wird, …
Ist es möglich, SQL-Injektionen in Node.js (vorzugsweise mit einem Modul) auf dieselbe Weise zu verhindern, wie PHP vorbereitete Anweisungen hatte, die gegen sie geschützt waren? Wenn das so ist, wie? Wenn nicht, welche Beispiele könnten den von mir bereitgestellten Code umgehen (siehe unten). Einige Zusammenhänge: Ich mache eine Webanwendung mit …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.