Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Varför bör man byta ut vissa tecken?

Postades av 2003-02-12 21:22:41 - Thomas Persson, i forum asp - allmänt, Tråden har 9 Kommentarer och lästs av 533 personer

Ofta ser man exempel och råd på att man av säkerhetsskäl ska byta ut vissa tecken (oftast ' och | osv.) när man ska ta emot text från ett formulär (vid registrering, inloggning mm.), men jag har faktiskt aldrig någonsin sett VARFÖR man bör göra detta?

Så nu undrar jag; varför bör man byta ut dessa tecken? Vad kan en kunnig person göra med hjälp av dessa ifall man inte byter ut dom? Och vilka tecken är det speciellt man bör byta ut?

Hoppas någon kan förklara detta för mig (och för andra intresserade)

Totte


Svara

Sv: Varför bör man byta ut vissa tecken?

Postades av 2003-02-12 21:45:39 - Thomas Tydal

Man ska byta ut apostrofer när det som användaren matar in ska skickas till en databas. (Observera att cookies, request.querystring och form också är sånt som användaren kan mata in.)

Gör man inte det så kan besökaren skicka kommandon till databasen. För du placerar ju användarens inmatning inom apostrofer, och kan användaren skriva egna apostrofer kan han ju "bryta sig" ur det. Om användaren t.ex. matat in kalle ser det ju ut så här:

SELECT * FROM users WHERE username = 'kalle'

Om nu användarens eventuella apostrofer inte byts ut kan han ju exempelvis skriva in: myrslok'; DROP TABLE users; som då blir till:

SELECT * FROM users WHERE username = 'myrslok'; DROP TABLE users; '


Svara

Sv: Varför bör man byta ut vissa tecken?

Postades av 2003-02-12 21:46:40 - Oskar Johansson

Det har dragits förut, dt vet jag, men i princip så är det såhär:

Följande fält finns:
användarnamn
lösenord
admin (kan vara null)

"INSERT INTO BLA VALUES('" & request.form("username") & "', '" & request.form("password") & "')"

Om:
Användarnamn = abc
Lösenord = 123
så blir sql-strängen följande:

INSERT INTO BLA VALUES('abc', '123')

Om:
användarnamn = abc
lösenord = 123', 'true
så blir sql-strängen följande:

INSERT INTO BLA VALUES('abc', '123', 'true')

Vilket inte blir bra...

Likaså kan du i MS-SQL server ha flera sql-satser efeter varandra vilket medför att du kan avsluta strängen och sedan kör en delete... INTE bra!


Svara

Sv: Varför bör man byta ut vissa tecken?

Postades av 2003-02-12 21:49:21 - Mikael Sand

Svaret är ganska simpelt: Säkerhet!

Genom att du tillåter inmatning av tecken som du normalt använder i koden kan en elakt typ utnyttja det och i bästa fall bara krascha sidan. I sämsta fall har du en bakdörr in i systemet.

Vill du skriva bra kod så se till att kollen finns eftersom dina besökare inte blir imponerade av en siten som kraschar hela tiden.

Att plocka bort det är synnerligen simpelt. Här har du användning för VBScript-funktionen Replace.

Om du inte vet hur det funkar så:

<code>
Dim s
s = Replace("ASP.NET är bättre", "ä", "a")
</code>

Resulterar i "ASP.NET ar battre".

Om du nu överför det på andra vanliga tecken i koden kan den som fyller i inte lägga in egen kod: </textarea>Virus


Svara

Sv: Varför bör man byta ut vissa tecken?

Postades av 2003-02-12 22:13:54 - Thomas Persson

Tackar för svaren :)

Om jag då byter ut all ' mot '' istället, löser det det då, eller behöver man byta ut det mot något annat?
Om det gäller exempelvis en nyhet som läggs in så vill man ju då att det ska se ut som när det skrevs in när det presenterades på sidan. Kan man då använda replace funktionen igen och byta ut all '' mot ' igen?

Är där andra tecken förutom ' som man ska passa sig för? Hur är det med | som man också ser att det byts ut ibland?

"såg att du hade postat när jag skrev niklas, och besvarde min första fråga :) Hur är det med resten då"?

Totte


Svara

Sv: Varför bör man byta ut vissa tecken?

Postades av 2003-02-12 22:26:01 - Thomas Persson

Kom just på ännu en fråga :)
Gäller det här med att byta ut tecken ENBART när något ska matas IN i databasen, eller också när man ska läsa av från databasen (typ vid en kontroll av användarnamn och lösenord vid inloggning)?

Thomas Tydal du nämnde också cookies, request.querystring och form. Hur menar du egentligen? Behövs det INTE bytas ut vid exempelvis en cookie ska skapas efter en korrekt inloggning?

Ledsen för mina frågor, men jag måste lära mig någon gång ju :)

Totte


Svara

Sv: Varför bör man byta ut vissa tecken?

Postades av 2003-02-13 07:03:14 - Jonas Sjöblom

Replace(strApostrof, "'", "''")


' kommer skrivas ut som du skrev in det men jag vet inte varför


Svara

Sv: Varför bör man byta ut vissa tecken?

Postades av 2003-02-13 15:03:41 - Thomas Tydal

> Thomas Tydal du nämnde också cookies, request.querystring
> och form. Hur menar du egentligen?

Att om du tar något ur en cookie, från adressraden (get-variabel/request.querystring) eller ur ett formulär (post-variabel) så måste det också ersättas om det ska in i en databas. Alltså, även om det inte är något som användaren har uppmanats att mata in.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 808
27 960
271 761
763
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies