Yshopnoosa.com

Hur man kan blockera SQL-injektioner

SQL-injektion är en form av nätverksattacker som innebär att "injicera" kod i en databas i ett försök att tvinga databas fråga programmet returnerar ett fel och ge injektorn lite information om både databasen och informationen i den. Det kan utföras från vilken webbsida som fungerar som en portal till en osäker databas och inte sanera sina frågor.

Instruktioner

1 Se till att ange vilken typ av indata krävs när du skriver din SQL query kod. De flesta utvecklingsmiljöer kan du ange "sträng", "heltal" eller "datum". Till exempel URL:

http://mysite.com/listauthordetails.aspx?user_id=1234

tolkas av databasen som

SELECT förnamn, efternamn från användare där user_id = "1234"

Denna fråga kan skrivas om till

Dim ID som sträng = Request.QueryString("ID")

Dim cmd som nya SqlCommand ("Välj user_id från användare där user_id = @user_id")

Dim param = nya SqlParameter ("user_id", SqlDbType.VarChar)

param. Värde = ID

cmd. Parameters.Add(param)

Denna kod förhindrar ytterligare information från att läggas till i slutet av SQL-frågan, och bara passerar resultatet av user_id begäran.

2 Använda den .htaccess arkivera till kloss oäkta begäranden innan de skickas till databasen, med kommandot RewriteCond(). Till exempel för att blockera ett skript försöker du ändra en begäran variabel, använda raden "RewriteCond % {QUERY_STRING} _ begäran (= | [| \%[0-9a-Z]{0,2}) "i din .htaccess-fil.

3 Testa din SQL query kod innan du lägger till live-tjänsten på webben. Detta är förmodligen det viktigaste du kan göra, och bör göras varje gång du uppdaterar din webbplats.