Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:20 Der er 66 kommentarer og
3 løsninger

Sikkerhed ved kreditkort

Hej!

Sidder og programmere en kreditkort løsning og går sådan set også meget godt.

Man kan på siden (step1.asp) udfylde kortnr., udløbsdato (osv.) og på samme side er der et felt med et tilfældigt odrenummer som sendes til betalingsgatewayen. Samme sted står der hvilken side der vises hvis transaktionen gennemføres.

På den side (accept.asp) sender gatewayen en querystring med Transact med det som blev angivet på startsiden (step1.asp) og derved opfatter systemet den som betalt.

Men tager man den kode som står på step1.asp og indsætter i querystring transact værdi på siden accept.asp opfattes den også som betalt, men er den jo ikke da den ikke har været gennem gatewayen.

Hvordan pokker kan man lave det sikkert???
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 00:22 #1
Start med at bruge POST i stedet for GET....
Avatar billede burningice Nybegynder
18. maj 2003 - 00:23 #2
kaptajnkemo>> det bliver det ikke mere sikkert af ?!
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 00:25 #3
i hvertfald så sikkert at man ikke kan taste et kortnummer ind i url'en...
Eller hvad er det jeg har misforstået??
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:25 #4
kaptajnkemo>> altså problemet er at jeg får svar fra gatewayen i querystring om at den er betalt. Men man kan jo snyde ved at kopier det nummer over på filnavnet og i querystringen transact.

Kan da ikke passe det kun mig som har problemet ?? :o)
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:26 #5
kaptajnkemo >> alt med kortnummer og sådan noget er sikkret gennem betalingsgatewayen, og hvis det er forkert, ryger de tilbage på siden med en querystring svar i "reason"
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 00:28 #6
kan du ikke poste 2 eksempler...

1. den originale
2. den som er fake
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:28 #7
kaptajnkemo >> forstår ikke???
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 00:29 #8
giv et eksempel på den streng jeg kan copy/paste ting ind i for at snyde systemet....
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:32 #9
Ehm sådan her:

På den her side står der i kildekoden et transact nr. samt hvor siden ryger hen hvis transaktionen bliver gennemført:
/betaling/pay/step2-2-2.asp

Man kan se at den går hen til:
/betaling/pay/step3-1-2-makethisps.asp

og putter man transact ind med i querystring sådan her tror den at den er betalt:
/betaling/pay/step3-1-2-makethisps.asp?transact=1pw42EEga42UwUrdu9kPY64zo56r78h3


Eller spørg du efter selve kildekoden?
Avatar billede roenving Novice
18. maj 2003 - 00:32 #10
Har du prøvet at få fat i https -regler/standarder ?-)
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 00:34 #11
så gør da som jeg skrev til at starte med ;)

Brug POST fremfor GET... så kan man ikke se transaktionsID i URL og man har heller ikke mulighed for at taste et andet ind.....
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:35 #12
kaptajnkemo >> jaja, det meget fint, ville jeg også gøre hvis jeg kunne men min betalingsgateway sender svaret til mig i querystingen "transact" og jeg skal også sende alt til gatewayen i typen POST
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:37 #13
roenving >>hvad skulle det hjælP???
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 00:39 #14
så mener du vel at du er tvunget til at bruge GET ;)
Din betalingsgateway må da have nogle retningslinjer for sikkerheden??
Avatar billede gonza.dk Nybegynder
18. maj 2003 - 00:40 #15
dhgpower -> tjaa, men hvis kunden prøver bevist at snyde ved at ændre i querystrengen, ja så ved han jo at varen ikke er betalt, det ved du også da du kan se at du intet har modtaget fra kunden på din konto på betalingsgatewayen (du kan vel holde øje med betalinger der ikke?) Så i princippet er det jo ikke et decideret sikkerhedshul, men bare en irriterrende ting?
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:41 #16
kaptajnkemo >> helt enig, jeg benytter Freepay og kan ikke gøre det samme nummer med www.hotpeople.dk som har samme leverandør af gatewayen.

Så man må jo kunne gøre det, men kan ikke se hvordan ???
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:41 #17
gonza.dk >> det er ikke en præcis vare, men det er hvor at betalingen er gennemført fremvises et X antal password's alt efter hvor meget der er indbetalt...
Avatar billede gonza.dk Nybegynder
18. maj 2003 - 00:44 #18
ooh, ja så kan jeg godt se problemet. Har jeg forstået rigtigt:

Du har har f.eks. nogle brugere på en hjemmeside der skal kunne købe sig til ekstra ting på hjemmesiden og derfor skal købe sig til et password?
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:46 #19
Det minder lidt om Den Blå Avis type. Der er nogle informationer og vil du have resten skal du købe passwords for at se dem. Og for at man ikke bare skal smutte uden om betalingen skal jeg jo have lavet et eller fiks, men igen hvordan :)
Avatar billede gonza.dk Nybegynder
18. maj 2003 - 00:48 #20
Okay, så havde jeg jo stort set forstået rigtigt.

Du kunne jo tjekke hvilken siden brugeren kommer fra og så validere ud fra det. Ved ikke hvordan man gør i ASP. Er php-mand. Men det kan du jo sikkert sagtens selv lave. Bare et forslag, men tror at det vil virke ;o)
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:50 #21
Hmm, sq da sikkert en god ide... vil lige prøve :o)
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 00:51 #22
eller også kan du bare overføre ID'et i et hidden felt og samtidig checke om de to er ens??
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:53 #23
kaptajnkemo > forstår jeg ikke pointen i ??

men hvordan er det lige man tjekker "ref" page i asp ?
Avatar billede gonza.dk Nybegynder
18. maj 2003 - 00:54 #24
kaptajnkemo -> dhqpower er ikke selv herre over hvordan querystringen bliver overført, det kommer fra betalingsgatewayen som han ikke har noget med at gøre (andet end at han lejer sig ind på den) og dermed kan han ikke 'bare' overføre ID'et i et hidden felt.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:56 #25
gonza.dk >> nemlig ;)
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:56 #26
nogen som ved hvordan man får oplyst forrige sige i asp ??
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 00:56 #27
Hvis du indsætter et hidden felt med transaktionsnummeret på den side der modtager fra gatewayen kan du sammenligne det med det ID som står i URL'en... hvis man vil snyde og har tastet et andet ID i URL er de to jo forskellige, så ved du at folk har snydt...
Avatar billede grunken Nybegynder
18. maj 2003 - 00:58 #28
hvad med at lade transaktionen foregå i en hidden frame?
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 00:58 #29
kaptajnkemo>>> Ærligt talt så synes jeg ikke at dine råd er specielt gode. Det er så nemt at snyde med dine forslag som at prutte i en flaske.

dhgpoer>>> Du kan godt undgå snyd, men det kræver at din betalingsgateway understøtter en elelr anden form for hash-signatur af de værdier som du får tilbage.

I dit eksempel står der en parameter som er "1pw42EEga42UwUrdu9kPY64zo56r78h3" er det dit ordrenummer eller vhor komemr det fra? Hvilken betalingsgateway benytter du?

Har du snakket med dem om det?

Jeg vil bestemt ikke anbefale kaptajnkemos forslag. De er usikre og du risikerer at få ørerne i maskinen hvis du ikke gør mere end det.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 00:58 #30
kaptajnkemo >> det har du jo faktisk helt ret i ... hmm,
Avatar billede dhgpower Nybegynder
18. maj 2003 - 01:00 #31
_darkstar_ > nemlig dit forslag >kaptajnkemo< er ikek den mest smarte metode, men den som >gonza.dk< kom med vil jeg lige prøve.

Jeg benytter Frepay og har ikke magt over hverken server eller gateway såh :o)
Avatar billede kaptajnkemo Nybegynder
18. maj 2003 - 01:00 #32
jamen så tror jeg da jeg vil lade sikkerhedsguruen overtage herfra....
Avatar billede gonza.dk Nybegynder
18. maj 2003 - 01:01 #33
dhq -> hvad jeg lige kunne finde frem til skal du bruge Request.ServerVariables("HTTP_REFERER") er utestet og jeg er stadig ikke en asp mand, men prøv det. ;o)
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 01:02 #34
Vedrørende idéen med at sammenligne to ID'er. Jeg går ud fra at brugeren har adgang til værdien ved blot at vælge "View source" i sin browser. Herefter skal man bare sende check-værdien over. Det holder ikke. Hidden frame: holder ej heller.

Spørg betalingsgateway-udbyderen om de understøtter hashing af returfelterne og lad høre hvad deres svar er. Alt afhængigt af hvad de siger, skal jeg nok hjælpe dig.

P.S. Jeg er tidligere arkitekt på den første dankortsoftware i danmark :-)
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 01:03 #35
gonza.dk>> Referer kan man ikke stole på, så den løser ikke problemet.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 01:05 #36
_darkstar_ > undersøge lige sagen...!
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 01:06 #37
Hvis du benytter freepay er der *ingen* måde at du kan gøre det sikkert på. Du er nødt til at lade butiksejeren checke hver transaktion manuelt.

Det eneste alternativ er at bruge en HTTPS-klient som dit script benytter til at kalde freepay med, så det ikke er brugerens browser der kommunikerer med freepay, men dit eget script.

Alt andet omgåes og er dermed en rigtig skidt idé.
Avatar billede gonza.dk Nybegynder
18. maj 2003 - 01:07 #38
darkstar -> Hmm, sad faktsisk lige og tænkte på det samme, men den hjælper vel med til at sorterer en stor del 'snydere' væk. Men okay, du lyder som om du ved hvad du taler om så vil ikke gøre mig klog på noget ;o)

dhqpower -> lyder som om du lige skal forhøre dig hos din betalingsgateway og så tale en fornuftig snak med darkstar :-D
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 01:07 #39
Vedrørende referer: hvis du har en webadresse hvor du kan se referer i din log, skal jeg fluks sende dig en forespørgsel med lige netop den referer, du måtte ønske.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 01:07 #40
_darkstar_ > dvs. du mener ikke jeg kan gøre det med Freepay?

Men det med REFERER, kan vil godt bruges, eller hvad?
Avatar billede dhgpower Nybegynder
18. maj 2003 - 01:08 #41
_darkstar_ > så den kan man også snyde med referer???
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 01:10 #42
gnoza.dk>>> Selvfølgelig vil det hjælpe, men det er ikke nogen skudsikker løsning og det er altså hvad man har brug for, når det gælder pengetransaktioner :-)

Alle forslag her vil på den ene eller anden måde gøre det mere besværligt at snyde, men når folk som jeg (eller andre teknisk mindede) på ½ time kan skrive et script som kan hælde vilkårligt mange ordrer igennem butikken uden at betale, er det ikke meget værd.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 01:11 #43
darkstar_ >jamn hvordan (ja undskyld) SATAN gør jeg det så sikkert?? Hvis www.hotpeople.dk/paycenter/ kan gøre det, kan jeg sq vel også :O)
Avatar billede gonza.dk Nybegynder
18. maj 2003 - 01:13 #44
darkstar -> det har du skam fuldstændig ret i. det er jo halv svær at drive en butik/virksomhed hvis ikke man får noget som helst for sinde varer/serviceydelser eller hvad det måtte være :-D
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 01:14 #45
Vedrørende Freepay: deres system understøtter ikek automatisk registrering af status på pengetransaktionerne. Det skal gøres manuelt. Hvis de siger noget andet, så vil jeg meget gerne høre fra dig igen, for i så fald må det skyldes manglende dokumentation af hvad deres system kan... eller uvidenhed.

Vedrørende referer-feltet i HTTP. Da det er en værdi som er sendt af brugeres browser kan man i sagens natur ikke stole på den. Mange program-biblioteker med HTTP-funktioner tillader at man selv sætter referer som det passer en.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 01:16 #46
_darkstar_ > jeg vil lige prøve at kontakte freepay og høre hvordan det hænger sammen...
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 01:28 #47
Vedrøende Hotpeople>>> Jeps. Nu har jeg fundet deres betalingsfunktion. De cheker referer, men deres betalingsfunktion er faktisk ikke sikker. Jeg har kontaktet dem. Desværre vrimler det med den slags. Det er et rent slaraffenland for folk som gerne vil snyde. I sin tid havde Nem Computer og Scor.dk samme problem :-)
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 01:29 #48
Jeg vil *meget* gerne høre fra dig hvis du får at vide at det er sikkert nok blot at se hvor brugeren bliver sendt hen. Får du en længere opskrift fra dem, så post den her.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 01:30 #49
Vil jeg gøre :o)
Avatar billede gonza.dk Nybegynder
18. maj 2003 - 01:35 #50
glæder mig til at høre hvordan det kan komme til at funge på en sikker måde.

Men hvis nu man har fysiske varer der skal sendes til kunden, er det så også nødvendigt med denne sikkerhed? (selvfølgelig vil det være godt, sikkerhed er godt) men er det nødvendigt? Jeg mener, virksomheden kan jo tjekke om betalingen rent faktisk ER gennemført før kunden modtager varen, derefter kan viksomheden kontakte kunden hvis varen ikke er betalt. Men under alle omstændigheder vil det jo spare en masse besvær at sørge ordenligt for sikkerheden før man sælger til sine kunder.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 08:48 #51
gonza.dk >> fuldstændig korrekt.

Da jeg sidder og arbejder som freelance programmør for et firma, med speciale i at sælge internetsystem, der i blandt også en shop med kreditkort betaling, så ved jeg også at når jeg har fundet en løsning til det her, skal det også ordnes i shoppen for at undgå det.

Problemet for mig er bare at den faktisk selv skal tjekke om betalingen er udført på en eller anden måde, så derfor afventer jeg svar fra Freepay :o)
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 10:56 #52
gonza.dk>>> Hvis man sørger for at checke at betalingen er gået igennem, før man sender varen, er der ikke noget at bekymre sig om. Det er bare vigtigt at ejeren af butikken er klar over at transaktionerne nogle gange kan mangle og at det betyder at varen ikke skal sendes.

Det er klart meste praktisk at vide om autorisationen er gået igennem fra første færd af. At butiksejeren kan risikere at skulle afvise ordrer fordi transaktionen mangler kan godt virke ret u-handy.
Avatar billede clausn Nybegynder
18. maj 2003 - 18:46 #53
Hvad med at du på side 2 og 3 checker hvilken refere man kommer fra:

Response.Write Request.ServerVariables("HTTP_REFERER") udskriver den side man kom fra... På denne må kan du også checke om brugeren kom fra den rigtige side - altså om vedkommende har været forbi betalingsgatewayen.
Avatar billede dhgpower Nybegynder
18. maj 2003 - 19:08 #54
_darkstar_ >> korrekt nok, men bare ikke nemt når der i dette tilfældes skal være sikkerhed i top da "varen" bliver leveret med det samme transaktionen bliver anset som betalt.

riwen >> Ehm, altså normalvis vil personen jo lige meget hvad skulle igennem alle siderne. Jeg vil også lige prøve at lave sådan at reference siden skal være den adresse som gatewayen ligger på. Men nogen siger det ikke altid er til at stole på!??
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 20:59 #55
riwen>>> Læs mine kommentarer ovenfor.

dhgpower>>> Så er du nødt til at finde en anden betalingsgateway eller (som jeg også skrev tidligere) benytte et https-bibliotek til selv at håndtere kommunikationen med betalingsgatewayen. Det kræver dog så at du også har et SSL-certifikat, da dit script skal modtage kreditkortnummer, mm. og sende dette videre.

Og ja - REFERER er ikke til at stole på.

Jeg sætter gerne en kasse øl på højkant til den person der kan bruge referer-feltet til at afgøre om nogen har været forbi freepays betalingsgateway eller ej. Vedkommende skal skrive to sider som hhv. sende brugeren til betaling hos freepay og modtager brugeren derfra. Hvis modtagerscriptet kan skrive "Du kom ikke fra freepay.", når det er tilfældet så giver jeg en kasse øl til vedkommende, som har skrevet de to sider.
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 21:01 #56
P.S. Jeg vil selvfølgelig skrive et lille script som gennemfører transaktionen udenom freepay ved bare at sætte referer-feltet selv. Jeg betragter det som en en rimelig måde at vise at det ikke fungerer på.
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 21:02 #57
Iøvrigt vil jeg understrege at når det gælder pengetransaktioner, er det nogle lidt andre spilleregler, der gælder. Hvis man udvikler et system, hvor man er bekendt med at der kan forekomme svind fordi at sikkerheden ikke er på plads, kan det altså blive et meget alvorligt problem.

Specielt hvis man ved at der kan udbedres. Jeg savner en smule respekt for folks penge og forretning i denne diskussion.
Avatar billede clausn Nybegynder
18. maj 2003 - 21:10 #58
Hvad anbefaler freepays og PSB? Jeg kender ikke til nogle af de 2 firmaers spilleregler, men de specielt PSB må have udarbejdet noget skift om hvordan man laver et sikkert system.
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 21:34 #59
PSB?
Avatar billede clausn Nybegynder
18. maj 2003 - 22:37 #60
Ahhh....! PBS!

ha ha.. den anden var Peter Skøtt´s Begravelsesforretning, og han har nok ikke så meget at gøre med betalinger på nettet... :)

sorry..
Avatar billede _darkstar_ Nybegynder
18. maj 2003 - 23:39 #61
PBS' retningslinier er meget generelle, men jeg ersikker på at hvis de vidste at man kunne snyde så nemt, ville de kræve at man udbedrede fejlen. Det er dog meget hypotetisk, for så grundige er de ikke.

Jeg er også nysgerrig efter at høre hvad Freepay siger.
Avatar billede gonza.dk Nybegynder
19. maj 2003 - 11:11 #62
darkstar -> 'Jeg savner en smule respekt for folks penge og forretning i denne diskussion.'??? Jeg mener bestemt at jeg har respekt for pengetransactioner, alt andet er forkert at sige, ja REFERER er nok ikke den bedste løsning, dog vidste jeg ikke at den var så nem at snyde med som du siger ;o). Derfor stopper jeg da også med flere 'småsnuskede' løsninger, der jo i den sidste ende ikke er sikkert nok til dette formål.

Hvis man skal drive en forretning, skal det gøres ordentligt, kunderne skal ligeledes behandles ordentligt, ellers kommer de jo nok ikke igen og handler ;o)

Mvh.
Gonza
Avatar billede dhgpower Nybegynder
20. maj 2003 - 11:59 #63
Jeg har forsøgt at kontakte Freepay men for heller ikke rigtig noget svar fra dem, så de skal nok snart lette røven ellers må jeg jo finde en anden leverandør af betalingsgatewayen, der er jo nok af dem :o)
Avatar billede dhgpower Nybegynder
20. maj 2003 - 14:01 #64
Har modtaget svar fra Freepay, og det er fordi der er en special reference side som skal bruges til hver kunde som jeg har forstået - modtog følgende svar:

"Læs inde under admin --> opsætning --> premium opsætning. Der har man mulighed for at angive en "hemmelig" accept URL. I skal så blot sørge for at denne URL ikke kan findes af brugerne, samt at det er denne URL som sørger for opdatering af databasen."

Så den med reference side er jo vist god nok ! Men kender ikke lige på nuværende tidspunkt den side, må jeg heller ikke oplyse hvis jeg gjorde, men tror ikke det er lige så let at bryde igennem !
Avatar billede _darkstar_ Nybegynder
20. maj 2003 - 14:21 #65
Hmmmm... hvor hemmelig er så den URL hvis det første der sker når man betaler er, at systemet sender dig hen til den?

Så kræver det jo ikke andet end at jeg betaler én gang, hvorefter alt andet er gratis. Det virker kun hvis de proxy'er siden og man så iøvrigt indretter den således at kun freepays server må tilgå den.
Avatar billede dhgpower Nybegynder
20. maj 2003 - 17:36 #66
_darkstar_ > jeg ved virkelige ikke hvordan det er opsat , men skal nok vende tilbage når jeg får adgang til deres system. Altså ikke for at afsløre det men komme med en redegørelse for det !
Avatar billede _darkstar_ Nybegynder
20. maj 2003 - 19:18 #67
dhgpower>>> Jeg har faktisk selv taget kontakt. Lad os se hvem der får svaret først :-)
Avatar billede _darkstar_ Nybegynder
27. maj 2003 - 20:38 #68
Okay nu er jeg tilbage.

Freepay har mulighed for at man sætter en URL, som de kalder efter at authorisationen er gået igennem. Denne URL kaldes direkte fra deres server til din. Brugerens browser er altså ikke med i dette. Parametrene er de samme som dem, der bliver sendt til den almindelige Accept-URL.
Avatar billede trumf Nybegynder
19. november 2003 - 01:39 #69
OK..............

Er dette godt eller dårligt ???

darkstar påstår jo at dette ikke er sikkert (hvis man bare kan gætte den hemmelige URL) eller gør han ??????
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester