Avatar billede hyperactive Nybegynder
21. marts 2003 - 16:23 Der er 22 kommentarer og
1 løsning

Sikker betalingsside

Jeg arbejder på et website, hvor man mod betaling skal have adgang til en række ydelser...

Jeg mangler en løsning, som kan sikre at man KUN kan få adgang til de sikre sider i forbindelse med betaling, så folk ikke kan bookmarke en side og vende tilbage uden at betale igen...

Jeg bruger Freepay som betalingsgateway.... Det vil sige at en bruger indtaster sine betalingsoplysninger på mit site i en formular, hvorefter oplysningerne sendes via https til Freepay. Hvis kortoplysningerne godkendes bliver brugeren sendt til en url f.eks. default.asp?betaling=godkendt. Hvis de ikke godkendes ryger brugeren til en anden url...

Nogen der kan hjælpe med at sikre mit system??? f.eks. med eksempler eller links til løsninger
Avatar billede chrisrj Forsker
21. marts 2003 - 20:53 #1
Man kunne lave noget med enten cookies eller brugere. Hvad er du mest interesseret i?
Avatar billede hyperactive Nybegynder
21. marts 2003 - 21:03 #2
chrisrj.... Jeg vil gerne have den løsning, som er mest brugervenlig og kompatibel
Avatar billede chrisrj Forsker
21. marts 2003 - 21:07 #3
Kompatibel med hvad?
Avatar billede hyperactive Nybegynder
21. marts 2003 - 21:25 #4
Jeg mener, så flest mulige kan bruge siden.... Cookies vil nok være det mest oplagte, men der er jo folk som har slået cookies fra i deres browser.
Avatar billede chrisrj Forsker
21. marts 2003 - 21:28 #5
.. så bliver man nødt til at oprette brugere...

Man kunne måske lave det sådan her:

Brugeren betaler, bliver godkendt, brugeren bliver oprettet automatisk, og får oplyst sit brugernavn/password og bliver derefter "lukket ind" i systemet.
Avatar billede hyperactive Nybegynder
21. marts 2003 - 21:32 #6
Jamen det er det at registrere betalingen, der er mit problem.... Det skal jo på en eller anden måde registreres på mit site at betalingen er godkendt og at brugeren har adgang.... Så brugeren ikke bare kan snyde sig ind.
Avatar billede chrisrj Forsker
21. marts 2003 - 21:39 #7
Så laver du bare at tjek på brugernavn og password.

F.eks.

<%
strSQL = "Select * from profiler"
Set rs = Conn.Execute (strSQL)
navn = Request.form("navn")
password = Request.form("password")
Do While Not rs.EOF
fejl = ""
If Request.form("Submit")<>"" Then
    if navn <> "" then
        'response.write "Navn er ikke tom.<br>"
        If navn = rs("brugernavn") then
            'response.write "Navn er i db.<br>"
            if password <> "" then
                if password = rs("password") Then
                    'response.write "password er ikke tom.<br>"
                    Session("Valid") = navn
                    Response.redirect "dinside.asp"
                else
                    'response.write "password er ikke i db.<br>"
                    fejl = "Forkert Password. Prøv igen"
                    exit do
                end if
            else
                fejl = "Du har ikke indtastet et password. Prøv igen"
                exit do
            end if
        Else
            'response.write "Navn er ikke i db.<br>"
            fejl = "Forkert brugernavn. Prøv igen"   
        End If
    else
        fejl = "Du har ikke indtastet et brugernavn. Prøv igen"   
    end if
End If
rs.MoveNext
Loop
%>
Avatar billede hyperactive Nybegynder
21. marts 2003 - 21:42 #8
Ja, den er jeg med på, men det er stadig registreringen af betalingen, der er mit problem
Avatar billede chrisrj Forsker
21. marts 2003 - 21:44 #9
Nu er jeg ikke så meget inde i det med betalinger, så hvis du kunne uddybe det lidt mere, ville det være nemmere at hjælpe dig.
Avatar billede hyperactive Nybegynder
21. marts 2003 - 22:16 #10
Trin 1:
Betalingsoplysninger indtastes og formularen submittes til en sikker betalingsgateway.

Trin 2:
Betalingsoplysninger valideres og godkendes

Trin 3:
Betalingen gemmes i en database

Det der er vigtigt er, at der ikke kan gemmes data på trin 3, medmindre trin 1 og 2 er gennemført korrekt.

Trin 2 udføres på Freepays betalingsgateway, så den kan jeg ikke ændre på. Når trin 2 er udført redirectes til en URL F.eks.: http://www.MinSide.dk/default.asp?betaling=accepteret&MerchantNumber=9999999&Amount=178&Currency=208&OrderNumber=000392&x=0&y=0&transact=508502
Avatar billede hyperactive Nybegynder
21. marts 2003 - 22:17 #11
P.S. OrderNumber er noget jeg tildeler.... transact er noget Freepay tildeler
Avatar billede chrisrj Forsker
21. marts 2003 - 22:24 #12
Jamen, så er det lige til. :)

Så skal du bare lave noget ala:

http://www.MinSide.dk/default.asp?betaling=accepteret&MerchantNumber=9999999&Amount=178&Currency=208&OrderNumber=000392&x=0&y=0&transact=508502&opret_ny_bruger=true

Så laver du funktion, der opretter en ny bruger med de oplysninger og et brugernavn(f.eks. 0001 og derefter 0002 ovs. ovs.) og password(f.eks. abcd og derefter efgh ovs. ovs.)
Avatar billede chrisrj Forsker
21. marts 2003 - 23:13 #13
Kan du bruge det til noget?
Avatar billede hyperactive Nybegynder
22. marts 2003 - 11:02 #14
Jeg kan godt se princippet, men hvad nu, hvis en bruger en gang har betalt og vil ind på siden igen.... Så kan han vel bare kopiere ovennævnte adresse og ændre ordrenummeret, så ryger han ind på siden igen.... Jeg er klar over at jeg kan lave en cookie på side 1, men hvad nu hvis han så først besøger side 1 så cookien gemmes og derefter indtaster adressen??
Avatar billede chrisrj Forsker
22. marts 2003 - 11:19 #15
Så kan du bruge Session.SessionID(tror jeg det hedder) det er unikt for hver gang en bruger logger ind på dit site.

Du skal naturligvis også slette brugernavn og password(evt. sætte adgang til false) når brugeren har fået sin(e) ydelse(r).
Avatar billede hyperactive Nybegynder
22. marts 2003 - 11:40 #16
Kan du komme med et konkret eksempel på, hvad jeg skal registrere på side 1 og hvordan jeg laver tjekket på side 3?
Avatar billede chrisrj Forsker
22. marts 2003 - 11:57 #17
Altså:

Du får disse oplysninger:
betaling=accepteret
MerchantNumber=9999999
Amount=178
Currency=208
OrderNumber=000392
x=0
y=0
transact=508502

Så tjekker du på "betaling" hvis accepteret så opret bruger.
brugernavn, password, transact og sessionid ligges i db

På din 3. side laver du et tjek på sessionid.
Avatar billede hyperactive Nybegynder
22. marts 2003 - 12:08 #18
Jamen mellem side 1 og side 3 ryger brugeren jo gennem betalingsgateway'en og sendes derefter retur til mit site... Så får han vel et nyt session id??
Avatar billede chrisrj Forsker
22. marts 2003 - 12:12 #19
Nå, det er sådan du mener.

Hvad sker der efter side 3?
Avatar billede hyperactive Nybegynder
22. marts 2003 - 12:14 #20
Jamen meningen er jo at side 3 registrerer betalingen og at brugeren derefter har adgang til sidens indhold
Avatar billede chrisrj Forsker
22. marts 2003 - 12:18 #21
Så kunne du måske lave et eller andet random id/ord og ligge det i db.
Avatar billede the_bma_man Nybegynder
01. april 2003 - 22:27 #22
Løsningen kunne vel være, at du indlægger en side ekstra.
Sådan at
1. Din form
2. Din egen behandling af form + opbyg form til gateway, der autosubmittes
3. FreePay
4. Din validering.

På side to genererer du så en unik kode - gemmer denne sammen med ordrenummeret i databasen, og når du kommer til 4, checker du, at du har fået denne retur fra Freepay. Så skal både ordrenummer og et tilfældigt checknummer matche, for at du kan logge ind.
Og selvfølgelig kan man kun logge ind med denne kode een gang - ellers skal laves noget brugerstyring herefter.
Avatar billede hyperactive Nybegynder
19. april 2003 - 09:45 #23
Har valgt at skifte til en anden betalingsgateway, som er mere sikker.
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