webForumDet fria alternativet

Byta ut farliga tecken

ASP

30 svar · 1 441 visningar · startad av calson

Medlem sedan dec. 2003487 inlägg
Frågan#1

Någon som vet vad koden för ',% & # är?

det är ju farliga tecken för en databas så jag skulle villja byta ut dom mot html kod, som & nbsp; är mellanslag

Tack på förhand

Medlem sedan juni 200032 967 inlägg
#2

Av de tecknen är det bara apostrof som är "farlig" för databasen. Men ersätt inte med html-entiteten, utan escapea ordentligt med apostrof så blir allt rätt.

sFoo = Replace(sFoo, "'", "''")
Medlem sedan dec. 2003487 inlägg
#3

ok
Jag har satt ' till "" alltså tomt

tack anders

Medlem sedan juni 200032 967 inlägg
#4

calson skrev:

ok
Jag har satt ' till "" alltså tomt

Va, varför då? Jag gav ju till och med exempel på precis hur du gör det på rätt sätt utan att förstöra datat?

Medlem sedan dec. 2003487 inlägg
#5

Va nog lite oklar. Jag hadde satt så ' blir "". har nu ändrat så ' blir ''

Hur gör jag med % då?
Vågar man låta folk skriva in det?

Medlem sedan juni 200032 967 inlägg
#6

% kan inte förstöra någonting. %-tecken fungerar som wildcard i LIKE-sökningar, men förstör inte datat på något sätt.

Medlem sedan apr. 20012 266 inlägg
#7

Det bästa för att slippa detta problem, måste väl ändå vara att använda parameterfrågor där data inte infogas direkt i SQL strängen.

Medlem sedan apr. 20022 743 inlägg
#8

Ett annat litet tips när det gäller säkerheten är att om du vet ungefär vad det är för något som ska in så tillåt bara vissa tecken. Är det t.ex. ett namn så tillåt endast A-Ö, a-ö samt mellanslag, kanske även bindesträck (-), är det ett postnummer så tillåt bara siffror osv.

Ur säkerhetssynpunkt känns det bättre att bestämma vilka tecken som ska tillåtas istället för vilka som inte ska (även om jag alltid förhindrar SQL-injections också som en liten extra koll). Kanske lite överdrivet men känns iallafall lite bättre :bire

Medlem sedan dec. 2003487 inlägg
#9

Tack för alla svar

Medlem sedan maj 20031 173 inlägg
#10

Poffe skrev:

Ett annat litet tips när det gäller säkerheten är att om du vet ungefär vad det är för något som ska in så tillåt bara vissa tecken. Är det t.ex. ett namn så tillåt endast A-Ö, a-ö samt mellanslag, kanske även bindesträck (-), är det ett postnummer så tillåt bara siffror osv.

Ur säkerhetssynpunkt känns det bättre att bestämma vilka tecken som ska tillåtas istället för vilka som inte ska (även om jag alltid förhindrar SQL-injections också som en liten extra koll). Kanske lite överdrivet men känns iallafall lite bättre :bire

hur gör du för att undvika SQL injections? antar att du inte använder datat som användaren skriver rätt till din SQL sats?

Medlem sedan apr. 20022 743 inlägg
#11

Calevan skrev:

hur gör du för att undvika SQL injections? antar att du inte använder datat som användaren skriver rätt till din SQL sats?

Det gör du med replace som @nders visde här över.

Medlem sedan dec. 19996 721 inlägg
#12

Det gör du med replace som @nders visde här över.

Att bara ersätta ' med '' är långtifrån tillräckligt för att slippa all form av sql injection, men det är en bra bit på väg.

Medlem sedan juni 20019 519 inlägg
#13

@nders kan inte ; göra saker? Har för mig jag läste om att man kunde tex:

SQL = "Select * from data;drop data"

då ta man ju bort "data" lagringen...

Medlem sedan dec. 2003487 inlägg
#14

emission
då vore det vädligt trevligt om du kunde dela med dig av din kunskap om sql injection eller kanske tippsa om någon bra artikel angående detta

Tackarr

Medlem sedan mars 20041 505 inlägg
#15

Att ersätta ' med '' ger alltså ' igen när datan är sparad?

Medlem sedan juli 200498 inlägg
#16

Troxy skrev:

Att ersätta ' med '' ger alltså ' igen när datan är sparad?

Njae, du får '' i databasen, om jag inte tänker fel nu...

/m

Medlem sedan dec. 200012 464 inlägg
#17

Det lagras ' i databasen.

Medlem sedan mars 20041 505 inlägg
#18

Okej, tack. Jag har för mig att det är likadant med "slash".

Två \\ ger ett \ typ.

Medlem sedan dec. 200012 464 inlägg
#19

Inte i SQL.

Medlem sedan maj 20031 173 inlägg
#20

Calevan skrev:

hur gör du för att undvika SQL injections? antar att du inte använder datat som användaren skriver rätt till din SQL sats?

Poffe skrev:

Det gör du med replace som @nders visde här över.

emission skrev:

Att bara ersätta ' med '' är långtifrån tillräckligt för att slippa all form av sql injection, men det är en bra bit på väg.

det var det jag hade för mig, att det inte räcker, någon som kan ge oss förslag på åtgärder för att stoppa allt?

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)