Vinzenz Mai: ASP-Website attackiert

Beitrag lesen

Hallo,

Nun müßte ich also alle " und ' in diesem String mit \ maskieren, oder wie?

nein, denn die Voraussetzung [1] ist nicht erfüllt.

MS SQL-Server maskiert einfache Anführungszeichen durch eine Verdopplung. [2]
Daher nicht:

SELECT ... FROM ... WHERE foo='bar'; INSERT INTO ...' [1]

sondern

SELECT ... FROM ... WHERE foo='bar''; INSERT INTO ...' [1]

Wenn Du statt dynamisch zusammengesetzter SQL-Statements Prepared Statements verwendest, dann erledigt das das DBMS für Dich.

Freundliche Grüße

Vinzenz

[1] Vorausgesetzt, bei Deinem DBMS findet die Maskierung per Backslash statt.

[2] Das ist im Handbuch ganz einfach zu finden.