SQL server sp_executesql lagrede procedure udfører dynamiske SQL-sætninger , du opretter i et program. SQL-injektion er et hack , der giver brugerne mulighed for at få adgang til din SQL -database. Brug sp_executesql lagrede procedurer sammen med " Erstat "-funktionen til at erstatte den enkelte anførselstegn , som bruges til at afvikle ondsindet kode på din server. Instruktioner
1
Klik på Windows " Start" knappen og vælg " Alle programmer". Klik på " SQL Server ", klik derefter " SQL Server Management Studio " for at åbne softwaren.
2
Skriv dit brugernavn og din adgangskode i SQL- server login- skærmen for at få adgang til serveren databaser. Klik på en database, som du ønsker at forespørge og vælg " Ny forespørgsel " for at åbne redigeringsvinduet .
3
Skab en dynamisk SQL-forespørgsel. Følgende kode skaber en dynamisk forespørgsel, der indeholder citater i erklæringen : Hej
erklære @ forespørgsel som nvarchar (500 ) set @ query = ' select navn fra kunder, hvor signupdate = '' 1.1.2011 '''
i dette eksempel kan en hacker indsætte citater i " hvor "-klausul , som forårsager fejl i din SQL-forespørgsel.
4
Brug sp_executesql lagrede procedure med Erstat funktionen for at undgå SQL-injektion . Skriv følgende kode i editoren : Hej
sp_executesql Replace ( @ forespørgsel, '\\ '','' '' )
Koden erstatter hver enkelt citat med en dobbelt citat , som eliminerer mulighed for SQL-injektion .
5.
Tryk F5 for at udføre opgørelsen. SQL udfører og resultaterne af forespørgslen vises i resultaterne panelet.