Alternative zu exec sql zu vermeiden sql Injektion ist SP_EXECUTESQL?

Ich muss eine Verbindung zu einer vorhandenen gespeicherten Prozedur herstellen, die eine Textzeile in der database speichert. jetzt habe ich das sp gesehen und es ist eine verkettete Saite (in der mein Text platziert ist) und das es mit exec(@sql) .

Weil der Text von einer öffentlichen Website kommt, muss ich sicherstellen, dass keine SQL-Injektion möglich ist.

Der database-Kerl hatte nicht von SQL-Injektion gehört, also weiß er nicht was zu tun ist, aber da ich nicht das Risiko aus meiner Anwendung aussetzen möchte, würde ich gerne wissen, was getan werden kann, um die SQL-Injektion zu verhindern. Ich bin aber mehr Programmierer als sql Kerl.

Jetzt habe ich die 'SP_EXECUTESQL(@SQL)' gespeicherte Prozedur gefunden, wird das helfen, SQL-Injektion zu verhindern, oder ist es immer noch möglich, böswillige Anrufe zu machen?

danke im voraus für mich zu helfen

Schauen Sie sich die MSDN-Dokumentation für SP_EXECUTESQL(@SQL) hier an: http://msdn.microsoft.com/en-us/library/ms188001.aspx .

Das warnt das

Laufzeit-kompilierte Transact-SQL-statementen können Anwendungen auf böswillige Angriffe wie SQL-Injektion aussetzen.

Schauen Sie auch hier: http://msdn.microsoft.com/en-us/library/ms175170.aspx

Ich würde dringend raten, vertrauensvoll jedem input von jedem Benutzer zu vertrauen!

Können Sie die zu parametrierende Abfrage in irgendeiner Weise ändern?