Just nu i M3-nätverket
Gå till innehåll

Skydda mig mot skadlig inmatning/code


MML

Rekommendera Poster

Hur skyddar jag min hemsida och framförallt databasen från skadlig inmatning7code.

 

Använder jag HTMLEncode när jag spara till databasen, blir ordet "Säljes" så här "Säljes"

Detta visas dock korrekt när jag hämtar upp värdet i HTML sida.

Men jag kan ju inte söka på "Säljes", för det finns ju inte i databasen.

Länk till kommentar
Dela på andra webbplatser

Lite beroende på vilket programspråk och vilken databas du använder så kan möjligheterna skilja sig lite. Men man brukar ha samma möjligheter oavsett.

 

När man använder Lagrade Procedurer så brukar man använda parametrar för de värden man skickar in. Då brukar drivrutinen för databasen ta hand om inmatningen och hjälpa dig med att just escapea bort otillåtna tecken. Om man inte använder Lagrade Procedurer så fungerar något som heter Prepared Statements på ungefär samma sak. Man skapar parametrar och databasen kommer själv hjälpa till att göra sig av med de tecken som anses otillåtna.

 

Men det är inte det enda man skall göra. Kontrollera inmatningen, är det ett telefonnummer kontrollera att man faktiskt anger siffror, eventuellt mellanslag och + och -, ålder är väldigt enkelt då hela inmatningen skall vara ett heltal.

 

Just i sökfällt så kan det vara svårt, då får man dubbelkolla inmatningen, till exempel kontrollera eventuella reserverade ord etc.

 

Men att använda lagrade procedurer eller prepared statements med parametrar är alltid en bra grund att stå på. Sen bygger man helst vidare på att faktiskt kolla vilken inmatning som skett. Då brukar man vara hyffsat säker.

Länk till kommentar
Dela på andra webbplatser

Jag kör med ASP och MYSQL

Jag använder t.ex. detta för att kolla tecken:

function sql(value)
sql = replace(value, "'", "")
sql = replace(value, "|", "")
sql = replace(value, "<", "")
sql = replace(value, ">", "")
sql = replace(value, "=", "")
end function

strTexten = sql(Request.Form("txtTexten"))

Kan jag använda denna ovan för hela ord också, som jag skulle kunna köra innan jag skickar sökordet till SQL strängen?

Och vilka reserverade ord rekomenderas att använda i så fall?

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...