SMS met bevestigingscode sturen via PHP

Pagina: 1
Acties:
  • 952 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • QUILIX
  • Registratie: Juni 2001
  • Laatst online: 10-09-2024

QUILIX

zZzZzZz.....

Topicstarter
Ik verkoop een product via mijn website waar de klanten niet vooruit hoeven te betalen. Het is zelfs een vereiste van de leverancier van het product. Het gaat hier om een financieel massa product. Vandaar dat ik het niet vooruit kan laten betalen met bijvoorbeeld iDeal. De klant vult het bestelformulier in, vult de code van de captcha en klikt op verzenden. Het product wordt dan verzonden.

Het probleem is nu dat er erg veel nep bestellingen zijn. Grotendeels via robots denk ik, die zelfs de captcha kunnen invullen. Email bevestiging maakt hier ook niet veel uit.

Nu wil ik bij elke bestelling een 4 cijferige sms code versturen naar de telefoonnummer van de besteller die hij dan op de 2e pagina van het bestelformulier moet intoetsen voor bevestiging van de bestelling. Pas na het invullen van deze code op de bestelpagina en klikken op afronden, dat ik dan pas een email ontvang met zijn gegevens.

Ik heb een account bij Mollie. Daar heb ik wat rond gekeken naar de sms PHP api, maar ik wordt er niet veel wijs van als een beginnende PHP' er. Wanneer ik een HTTP-request naar de server stuur, kan ik met behulp van POST- of GET-variabelen de waarden meesturen. Bijvoorbeeld de afzender, het bericht en de ontvangers.

Enig idee hoe ik een sms codegenerator moet maken, dit versturen naar de besteller en laten kijken of de code klopt bij afronding?

Acties:
  • 0 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
Simpel.

Genereer in PHP een random code (knal die ff in een sessie ofzo)
Stuur die via Mollie API naar de klant
Laat het hem invullen en check of het overeen komt met de code in de sessie. Zoja ? -> Afronden.

Die API zit ook uitleg bij, dus daar moet je wel uitkomen :)

Owner of DBIT Consultancy


Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 14:27
DennusB schreef op woensdag 17 augustus 2011 @ 16:05:
Simpel.

Genereer in PHP een random code (knal die ff in een sessie ofzo)
Stuur die via Mollie API naar de klant
Laat het hem invullen en check of het overeen komt met de code in de sessie. Zoja ? -> Afronden.

Die API zit ook uitleg bij, dus daar moet je wel uitkomen :)
Inderdaad. Daarnaast is de documentatie bij Mollie ontzettend goed te noemen. Mocht je er nog niet uitkomen is het misschien wel niet de juiste taak voor je. Je zegt namelijk zelf dat je beginnend PHP'er bent. An sich maakt dat niet uit, maar weet je dan wel zeker dat je met privé-informatie, producten en geld wilt gaan werken?

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
alex3305 schreef op woensdag 17 augustus 2011 @ 16:08:
[...]
Mocht je er nog niet uitkomen is het misschien wel niet de juiste taak voor je. Je zegt namelijk zelf dat je beginnend PHP'er bent. An sich maakt dat niet uit, maar weet je dan wel zeker dat je met privé-informatie, producten en geld wilt gaan werken?
QFT... het is goed om dingen te leren maar ik zou toch eerst meer ervaring opdoen voordat je hieraan gaat beginnen. De documentatie bij Mollie is heel duidelijk en (meestal?) zelfs voorzien van uitleg in tekst ipv. code wat het voor beginners zelfs makkelijker moet maken. Als dat niet lukt is het misschien nog niet de tijd om met API's te gaan stoeien.

Wat we hier willen weten is waar je precies tegenaan loopt, dus wat voor stukje code werkt niet bijvoorbeeld. Met "ik weet niet waar ik begin" of "hoe maak ik x" kunnen we niet zoveel natuurlijk.

[ Voor 12% gewijzigd door Cartman! op 17-08-2011 16:41 ]


Acties:
  • 0 Henk 'm!

  • keesdewit
  • Registratie: December 2003
  • Laatst online: 11-06 18:32
Hierbij wat advies uit beveiligings oogpunt

- Je OTP code bestaat uit 4 getallen, limiteer het aantal pogingen bijvoorbeeld door een oplopend tijdlimiet in te stellen na bijvoorbeeld pogingen.
- Normale random getallen generators zijn niet echt random. Gebruik een cryptografische nummer generator die veel meer random is of wel minder voorspelbaar
- Bots moeten geen toegang hebben tot het gedeelte waar de SMS wordt verstuurt, anders loopt de rekening lekker op. Als je huidige captcha te kraken valt is deze dus niet afdoende in termen van moeilijkheidsgraad van de afbeelding, of op de manier waarop de juiste captcha string wordt opgeslagen. Sla geen gevoelige informatie op in sessie variablen, hidden input fields of cookies, alleen onderdoorzichtige referenties die je in je database kunt herleiden.
- Zorg dat je gevoelige informatie via ssl/https over het internet laat gaan, API calls die zonder encryptie over het netwerk/internet gaan zijn te onderscheppen c.q. vatbaar voor man in the middle aanvallen.
-Zorg dat je code de bot herkend, monitor het gedrag van de bot die je lastig valt en put up an defence

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
keesdewit schreef op woensdag 17 augustus 2011 @ 18:01:
- Normale random getallen generators zijn niet echt random. Gebruik een cryptografische nummer generator die veel meer random is of wel minder voorspelbaar
Technically heb je gelijk; in de praktijk is een PRNG heus voldoende voor dit soort doeleinden (mits je een fatsoenlijke seed gebruikt that is).
keesdewit schreef op woensdag 17 augustus 2011 @ 18:01:
Sla geen gevoelige informatie op in sessie variablen
:? Want?
keesdewit schreef op woensdag 17 augustus 2011 @ 18:01:
alleen onderdoorzichtige referenties die je in je database kunt herleiden.
Wikipedia: Security through obscurity
keesdewit schreef op woensdag 17 augustus 2011 @ 18:01:
- Zorg dat je gevoelige informatie via ssl/https over het internet laat gaan, API calls die zonder encryptie over het netwerk/internet gaan zijn te onderscheppen c.q. vatbaar voor man in the middle aanvallen.
Het is zeker aan te raden, maar voor iets dat server-side gebeurd is het niet vre-se-lijk als je geen SSL kunt gebruiken voor iets waar toch niemand bij kan. M.i.t.m. attacks zijn zeldzaam (maar niet onmogelijk, dat is waar).

In een aantal punten kan ik me vinden, in een aantal andere sla je voor een dergelijk project volgens mij een beetje door.
QUILIX schreef op woensdag 17 augustus 2011 @ 16:01:
Enig idee hoe ik een sms codegenerator moet maken, dit versturen naar de besteller en laten kijken of de code klopt bij afronding?
code:
1
2
3
$randomcode = rand * 9999999
session['rc'] = $randomcode
send_text($randomcode)


code:
1
2
3
4
if $session['rc'] == $post['confirmationcode']
  echo 'Okidoki!
else
  echo 'You bastard!'


Verder is dit niet heel veel meer dan een scriptrequest en daar doen we in de Devschuur niet aan. Sorry ;) Verder zou ik graag gezien hebben wat je zelf al bedacht/geprobeerd had (inc. evt. relevante(!) delen code etc) zoals ook in onze Quickstart beschreven staat.

[ Voor 22% gewijzigd door RobIII op 17-08-2011 19:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.