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, "'", "''")
30 svar · 1 441 visningar · startad av calson
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
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, "'", "''")
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?
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?
% 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.
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.
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
Tack för alla svar
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?
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.
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.
@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...
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
Att ersätta ' med '' ger alltså ' igen när datan är sparad?
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
Det lagras ' i databasen.
Inte i SQL.
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?