SQL Server sp_executesql lagrade proceduren körs dynamiska SQL-satser som du skapar i ett program . SQL-injektion är ett hack som gör det möjligt för användare att få tillgång till din SQL-databas . Använd sp_executesql lagrade procedurer tillsammans med " ersätt"-funktion för att ersätta det enkelt citationstecken , som används för att köra skadlig kod på din server . Instruktioner
1
Klicka på Windows " Start" och välj " Alla program ". Klicka " SQL Server , " klicka sedan på " SQL Server Management Studio " för att öppna programmet .
2
Ange ditt användarnamn och lösenord i SQL server log - in skärmen för att komma åt servern databaserna . Klicka på en databas som du vill fråga och välj " Ny fråga " för att öppna editorn .
3
Skapa en dynamisk SQL-fråga . I följande kod skapas en dynamisk fråga som innehåller citat inom uttalande :
deklarera @ query som nvarchar ( 500 ) set @ query = " select namn från kunder där signupdate = '' 1/1/2011 '' '
i detta exempel kan en hacker infoga citat i " där " klausul , vilket orsakar fel i SQL-frågan .
4
Använd sp_executesql lagrade proceduren med Replace funktionen att undvika SQL-injektion . Skriv följande kod i editorn :
sp_executesql Ersätt ( @ query , ' \\ '' , '' '' ) katalog
Koden ersätter varje enskilt citat med en dubbel citat , vilket eliminerar möjlighet för SQL-injektion .
5
Tryck på F5 -tangenten för att utföra ett uttalande . SQL utför och resultatet av frågan visas i resultaten panelen .