Fråga ang. databas säkerhet

ASP

6 svar · 172 visningar · startad av jerry_beach

Medlem sedan apr. 200147 inlägg
Trådstart#1

Jag har ju fått höra att att man bör ersätta ' med '', och ta bort | (det vertikala strecket) helt när man ska lägga in data i databaser. Men är det VERKLIGEN nödvädigt?
För då måste man ju ta bort ett ' när man sedan matar ut det på nån sida.
Kan ju kännas onödigt om det inte är nödvändigt (?) Ja ni förstår säkert vad jag menar ;)

Medlem sedan feb. 20012 412 inlägg
#2

Hej,

eftersom ' ställer till beskymmer i ASP, pga att det betyder kommentar får du göra om det tecknet när du lägger in data i datbasen. Du behöver inte ändra något när du matar ut datan.

Function FixaTecken(sText)
sText = replace(sText,"'","''")
sText = Replace(sText, "|", "")
FixaTecken = sText
End Function

mvh Jörgen :)

Medlem sedan apr. 200147 inlägg
#3

När jag hämtar en sträng från min databas som innehöll ett ' och skriver ut det så blir det 2 ', alltså skriver den ut det som var där från början OCH det som min funktion la till.
Och så ska det väl inte va egentligen?
Well, så är det :(

Medlem sedan dec. 200012 464 inlägg
#4

Du skall inte använda den funktionen när du skriver ut data, bara när du bygger ditt sql-statement som lagrar data.

Medlem sedan apr. 200147 inlägg
#5

Men alltså.. jag använder ju funktionen innan datan lagras i databasen. Men.. du menar kanske att jag bör göra på nåt annat sätt? Jag trodde hela poängen var att man ersatte 1' med 2'' för att databasen skulle bli säker, men det har tydligen att göra med själva ASPn, inte databasen.
Skulle du kunna ge mig nåt exempel på hur jag bör använda funktionen LarsG?

Medlem sedan dec. 200012 464 inlägg
#6

om ditt insert-statement ser ut så här

insert into ogrish(aleb) values ('x''a')

så lagras bara x'a i databasen. Det är bara för att det inte skall bli fel i sql-satserna som man lägger till en extra '.

Medlem sedan apr. 200147 inlägg
#7

Aha.. Då vet jag varför det blir 2'' istället för 1. Jag använder RecordSet för att uppdatera/lagra data. Jag vet att det är betydligt långsammare och jag har tänkt börja lära mig lite mer avancerad SQL, men det har inte blivit av.
Det är nog dags nu ;)
Tack för hjälpen.

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)