Toon posts:

[PHP/MySQL] Probleem winkelwagen script

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een website ontwikkeld waarbij men films kan reserveren/thuisbezorgen. Ze moeten dan op de site een film selecteren en vervolgens in hun winkelwagentje stoppen, dit gaat via deze url:
index.php?page=titel&titel_id=100&add=100&sys=dvd. De items in het winkelwagentje worden dan tijdelijk in de database gezet. Dit werkt allemaal perfect. Het probleem is echter dat er misbruik wordt gemaakt van dit script. Iemand heeft al een aantal keer de website en bijbehorende server platgelegd door ongeveer 10 keer per seconde een paar uur lang bovenstaande url aan te roepen, met elke keer andere variabelen. Wat is nou de beste manier om dit tegen te gaan? Ik zat zelf te denken om het via een hidden form te doen, zodat de variabelen niet via de url worden toegevoegd, maar per titel zijn er 4 verschillende opties, dus ook 4 verschillende formulieren. Misschien zijn er betere oplossingen?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Je kan POST-waardes gebruiken dit is al een stuk moeilijker te faken (maar nog wel te doen btw).
Je kan natuurlijk ook een limiet inbouwen per IP, wie huurt er immers 2352 films op 1 avond?
Of via een login-systeem waarbij je gebruikers kan bannen. Dit lijkt me zowiezo wel handig, bij een videotheek moet je immers ook een pasje aanvragen.

Verwijderd

En je kan natuurlijk de uitvoer van je script beperken tot pagina's op je eigen site. Is de link niet aangeroepen vanaf een pagina binnen jouw site? Meteen aborten.

Verwijderd

Topicstarter
De links zijn altijd zichtbaar, dus kunnen altijd en door iedereen in het winkelwagentje gestopt worden. Er moet pas ingelogd worden zodra de films ook echt besteld gaan worden.
De links zijn niet op te vragen vanaf een andere site, hangt namelijk ook een cookie om het winkelwagentje te herkennen. Aantal aanvragen per seconde per IP-adres had ik ook al een keer gehoord, maar dat vind ik zelf weer een beetje te ver gaan, die IP's zou ik dan ook weer tijdelijk op moeten slaan in de database neem ik aan.