webForumDet fria alternativet

onda tecken!

ASP

22 svar · 698 visningar · startad av leox

Medlem sedan mars 200550 inlägg
Frågan#1

Hej.

Jag har ett formulär med 2 fält i, när man skriver detta dumma tecken i fälten ' så fungerar det inte, SQL frågan ser ut såhär:

SQL = "Insert Into nyheter(rubrik,nyhet,datum) Values('" & (Request.Form("rubrik") & "','" & (Request.Form("nyhet") & "','" & Now() & "')"

Jag förstår så mycket att det blir fel för att det finns ' i SQL-uttrycket, men hur löser man de?

Tack på förhand!

Medlem sedan feb. 20032 027 inlägg
#2

sql injections, sök på google om det.....och du ska lägga dina värden i variabler först, snyggare och mer lätthanterligt

Function FriendlySQL (Term)
     Term = Trim (Term)
     If Term <> "" Then
          Term = Replace (Term, "", """")
          Term = Replace (Term, "'", "''")
          Term = Replace (Term, """""""", """")
          Term = Replace (Term, "''''", "''")
     End If
     FriendlySQL = Term
End Function

varVariabel=FriendlySQL(request.form("txtNanting"))
varVariabel=FriendlySQL(request.querystring("Nanting"))

Medlem sedan maj 20018 027 inlägg
#3

Kolla hur du ska ange datum i den databas du använder. Felet lär ju vara där.

Medlem sedan maj 200010 687 inlägg
#4

WebbisNet: Din funktion är ganska felaktig om man bara ska komma åt vanlig sql-injection. Enda man ska replaca är ' till ''.
Vad gör de andra tre replacearna där?

Man blir ganska trött på att se alla olika varianter av injection-spärr funktioner folk gjort som gör allt möjligt konstigt. Sen glömmer de säkert att hålla koll på numreriuska värden i sql:er.

Medlem sedan feb. 20032 027 inlägg
#5

skrev inte min själv, hittade den på nätet vid en artikel om injections

Medlem sedan maj 200373 inlägg
#6

Man kan även köra ändra ' till ´ så blir det ' när man skriver ut den på sidan

Medlem sedan mars 200550 inlägg
#7

rubrik = replace(request.form("rubrik"),"'","''")
nyhet = replace(request.form("nyhet"),"'","''")

SQL = "Insert Into nyheter(rubrik,nyhet,datum) Values('" & rubrik & "','" & nyhet & "','" & Now() & "' )"

Den fungerar men e jag skyddad mot SQL injections?

Medlem sedan mars 20032 667 inlägg
#8

Erik Juhlin skrev:

Enda man ska replaca är ' till ''.

Om detta tvistar de lärda.

Medlem sedan feb. 20032 027 inlägg
#9

leox skrev:

rubrik = replace(request.form("rubrik"),"'","''")
nyhet = replace(request.form("nyhet"),"'","''")

SQL = "Insert Into nyheter(rubrik,nyhet,datum) Values('" & rubrik & "','" & nyhet & "','" & Now() & "' )"

Den fungerar men e jag skyddad mot SQL injections?

Du är skyddad, med ett bra skydd om du i vaiabeln har
nyhet = FriendlySQL(request.form("nyhet")) om du använder min funktion och om du vill så kan du bygga på eller ta bort i funktionen för att få ett säkrare skydd

Medlem sedan mars 20032 667 inlägg
Medlem sedan feb. 20032 027 inlägg
#11

K@llen skrev:

Läs denna tråd noga:
http://www.webforum.nu/showthread.php?s=&postid=979563#post979563

Ok, kanske har fler än nödvändigt men min kod skyddar ändå...
Alla har vi våra favoriter :-D

Medlem sedan apr. 20022 743 inlägg
#12

WebbisNet skrev:

Ok, kanske har fler än nödvändigt men min kod skyddar ändå...
Alla har vi våra favoriter :-D

Ja, men det är bara en rad i den som skyddar, de andra gör bara så att datan inte sparas som den är tänkt.

Medlem sedan feb. 20032 027 inlägg
#13

Jag har aldrig upplevt att datan inte sparas som det är tänkt, använder den i mitt community och jag har aldrig haft några problem

Medlem sedan apr. 20022 743 inlägg
#14

Om jag skulle skriva in """ skulle det ju sparas som ", alltså inte som jag ville att det skulle sparas. Varför får jag inte skriva tre " i rad om jag vill? Eller om jag skriver fyra ' i rad så sparas det ändå bara som ett?

Medlem sedan feb. 20032 027 inlägg
#15

Poffe skrev:

Om jag skulle skriva in """ skulle det ju sparas som ", alltså inte som jag ville att det skulle sparas. Varför får jag inte skriva tre " i rad om jag vill? Eller om jag skriver fyra ' i rad så sparas det ändå bara som ett?

varför skulle man ens behöva skriva """ eller """" i mitt community, ser inget användningsområde för det, ska man skriva nåt så räcker det i vanliga fall ändå med "hej" till exempel

Medlem sedan apr. 20022 743 inlägg
#16

Sant, det är inte ofta man göra det men varför får man inte det?

Medlem sedan feb. 20032 027 inlägg
#17

Poffe skrev:

Sant, det är inte ofta man göra det men varför får man inte det?

Hade jag haft en sida där man skrev in ex koder som här på wF så är det bra att tänka på att man måste tillåta flera apostrofer, men i kommentarer till bilder, inlägg i gästböcker, klotterplank, mail eller skrivklådor så finns det ingen praktisk anledning till det

Medlem sedan apr. 20022 743 inlägg
#18

Så det är alltså endast ett kosmetiskt syfte och inget för att öka säkerheten. Tänkte bara att det kunde vara bra att reda ut.

Självklart får man hantera datan som man vill. IMHO tycker jag däremot att man ska låta den som skriver in datan bestämma hur den ska se ut :)

Medlem sedan feb. 20032 027 inlägg
#19

Det är inte bara kosmetiskt, det är praktiskt, vill en medlem jävlas med en annan genom att ex skriva """"""""""""""""""""""""""""""""""""""""""""""""""""" och mer så kommer inte alla att sparas, utan bara ett "

Medlem sedan apr. 20022 743 inlägg
#20

Men de kan ju lika gärna skriva aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa i sånt fall om de vill jävlas.

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