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


sträng säker?

Postades av 2007-05-12 17:31:56 - Mattias Svensson, i forum asp - allmänt, Tråden har 8 Kommentarer och lästs av 875 personer

Jag har säkrat en beloppssträng på detta sätt

var_belopp=Replace(request.form("belopp"),"\","")
var_belopp=Replace(var_belopp,"'","")
var_belopp=Replace(var_belopp,",",".")

fick lite konstiga fel när jag försökte omvandla den till decimaltal eller valuta så jag struntade i det, så här fungerar den i alla fall. Jag undrar bara - om man skriver in bokstäver eller annat tjohej i formulärfältet belopp, då kan ju inte MySQL lägga in det som valuta i databasen, och genererar följdaktligen ett felmeddelande, men är strängen ändå säker? Eller kan man manipulera den så att den kan ställa till med olika rackartyg?


Svara

Sv: sträng säker?

Postades av 2007-05-12 18:20:56 - Johan Djupmarker

Det finns fortfarande möjlighet att hitta på bus eftersom tal inte är inneslutna av '. Säg att du har en SQL-fråga som ser ut såhär:

"INSERT INTO tabell (fält1) VALUES (" & tal & ")"

Om användaren då matar in "0); DROP TABLE tabell;" som accetperas av din kontroll blir resultatet såhär:

"INSERT INTO tabell (fält1) VALUES (0); DROP TABLE tabell;)"

För MySQL klarar väl flera frågor separerade med ;?

/Johan


Svara

Sv:sträng säker?

Postades av 2007-05-12 19:59:52 - Per Persson

<b>För MySQL klarar väl flera frågor separerade med ;?</b>

Inte när man använder funktionerna i PHP. Vet inte om det är en generell säkerhetsåtgärd i C-API:t.

När man kör från MySQL-konsollen eller skriptfiler går det däremot.


Svara

Sv: sträng säker?

Postades av 2007-05-12 21:20:54 - Mattias Svensson

så vänta nu, det är alltså farligt att göra som jag gjort här då? lösningen är alltså att jag måste konvertera till ett tal?

Någon som förstår varför CCur() och CDbl() struntar blankt i punkten/kommat?


Svara

Sv:sträng säker?

Postades av 2007-05-12 21:40:14 - Thomas Vanhaniemi

Du behöver inte konvertera, kontrollera bara med IsNumeric funktionen att det är ett numeriskt värde före du använder dig av den.


Svara

Sv:sträng säker?

Postades av 2007-05-12 22:17:07 - Andreas Hillqvist

Konverteringsfunktionenrna använder aktuell inställd decimalseparator, vilket för svenska är komma och punkt för engelska.
Om du har sveksa så ger dig:

Dim Value
  Value = CCur("10,01") 

Ett värde som är av variant men har undertypen Currency med värdet 10,01.

Om du sedan försöker gör det till en sträng så använder den åter igen inställd decimalseparator.
Dim Value
Dim SQL
  Value = CCur("10,01") 
  SQL = "INSERT INTO TableName (Col) VALUES (" & Value & ")"

Så kommer det att ge sql strängen:
INSERT INTO TableName (Col) VALUES (10,01)

Vilket databasen kommer klaga på. Den tror att du skickar med två värden: 10 och 1.

Ett decimaltal måste alltså ha punkt som decimalseparator i SQL satsen:
INSERT INTO TableName (Col) VALUES (10.01)


Vad du vill göra är att låda användaren mata in tal så som användaren är van vid gör att sedan införa det med ett punkt.

Val() funktionen använder altid punkt som decimalseparator.

Därför borde:
Dim Value
Dim SQL
  Value = Val(Replace("10,01", ",", ".")) 
  SQL = "INSERT INTO TableName (Col) VALUES (" & Replace(Value, ",", ".") & ")"

Fungera oavsett decimalseparator eller ge ett fel om man skickar in något annat än ett tal.

MEn ett ADODV.Command objekt slipper du denna problematik med decimalseparator.


Svara

Sv: sträng säker?

Postades av 2007-05-12 22:50:46 - Mattias Svensson

tack. Jag hade redan hunnit göra i ordning det med IsNumeric (hoppas det är säkert...) med en tjusig liten felhanterare som skickar tillbaka användaren och highlightar fältet (belopp )som behöver fyllas i rätt, annars hade ju detta varit ett smidigare sätt, att bara kasta ett konverteringsfel om någon försöker tönta sig med inmatningen...

tack för att du bemödar dig att förklara hur det hela fungerar/varför man behöver Val() istället för den lokalbundna cCur().


Svara

Sv:sträng säker?

Postades av 2007-05-19 16:59:41 - Mattias Svensson

Okej, så jag har testat detta med Val() men det verkar som att den funktionen inte finns i VB Script - tänkte du på PHP?


Svara

Sv: sträng säker?

Postades av 2007-05-19 17:08:24 - Mattias Svensson

Lösningen får bli så här:

belopp=Replace(request.form("belopp"),".",",")
belopp=CDbl(belopp)
belopp=Replace(belopp,",",".")

känns lite omständigt, men vad gör man... och om jag skall köra den med en brittisk Lcid antar jag att jag bara kan skippa den första raden för där använder de ju punkt, då borde väl datorn fatta ändå... eller ja, eftersom MySql och deras Lcid vill ha samma så går det väl bra att använda CCur() där då...


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 159
27 952
271 704
1 454
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