SQL server sp_executesql lagret prosedyre utfører dynamiske SQL-setninger du oppretter i et program. SQL-injeksjon er en hack som lar brukerne få tilgang til SQL -databasen . Bruk sp_executesql lagrede prosedyrer sammen med " Replace "-funksjon for å erstatte enkelt anførselstegn , som brukes til å kjøre ondsinnet kode på serveren din. Instruksjoner
en
Klikk på Windows "Start "-knappen og velg " Alle programmer . " Klikk "SQL Server ", deretter "SQL Server Management Studio " for å åpne programmet .
2
Skriv inn brukernavn og passord i SQL server log -in -skjermen for å få tilgang til server databaser . Klikk på en database som du ønsker å søke , og velg "New Query " for å åpne redigereren .
3
Lag en dynamisk SQL-spørring . Følgende kode oppretter en dynamisk spørring som inneholder sitater innenfor uttalelsen : en
erklærer @ spørring som nvarchar ( 500 ) set @ query = "velg navn fra kunder der signupdate = '' 1/1/2011 '' '
i dette eksempelet kan en hacker sette inn sitater i "hvor" klausul , noe som fører til feil i SQL-spørringen .
4
Bruk sp_executesql lagret prosedyre med Erstatt -funksjonen å unngå SQL-injeksjon . Skriv inn følgende kode inn i editoren : en
sp_executesql Replace ( @ spørring, '\\ '','' '')
Koden erstatter hvert enkelt sitat med et dobbelt anførselstegn , noe som eliminerer mulighet for SQL-injeksjon .
5
Trykk F5 for å utføre setningen . SQL utfører og resultatene av spørringen vises i resultatene panelet.