21. marts 2003 - 16:23Der 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
Brugeren betaler, bliver godkendt, brugeren bliver oprettet automatisk, og får oplyst sit brugernavn/password og bliver derefter "lukket ind" i systemet.
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.
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 %>
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.)
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??
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.
Har valgt at skifte til en anden betalingsgateway, som er mere sikker.
Synes godt om
Ny brugerNybegynder
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.