Website: Zu viele (bösartige) Downloads verhindern (PHP?)



  • Hallo zusammen,

    ein Programm das ich auf meiner Website anbiete (und das in der Portablen Version beachtliche 50MB zusammenbringt) wurde von einem Witzbold vor 2 Tagen mehr als 6000 Mal heruntergeladen. Was das mit meinem Inklusive-Traffic gemacht hat könnt ihr euch vermutlich denken - Die Rechnung bekomme ich da dann am Ende des Monats.

    Ich bin mir Sicher dass das kein neues Phänomen ist, deshalb die Frage ob jemand ein PHP Script kennt mit dem man das verhindern bez. nach einer bestimmten Downloadmenge stoppen kann.
    Wie man das prinzipiell schreiben kann ist mir klar, es geht mir vorwiegend um existierende (freeware/Opensource) Lösungen um mir den Aufwand des Selberschreibens zu sparen.

    Viele Grüße

    Rai



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Webzeugs verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ich würde sagen, das könnte schwierig werden, zumindest mein Eindruck. Du kannst zwar 'ne Abfrage/Sperre einbauen, wenn eine bestimmte IP die Datei mehrmals anfordert (ich denke, 5 Mal in der Stunde sollten definitiv mehr als genug sein), aber das schützt dich nicht wirklich. Von Umleitung über Proxy bis zum einfachen An- und Ausstecken des Routers/Modems gibt's viele Wege, seine IP zu verhüllen, da bringt das nicht wirklich was. Einen ganzen Netzbereich kannst du sperren (wobei das eher Spatzen mit Kanonenkugel beschießen ist, und gegen einen knorken Provider oder einen guten Proxy hilft das nicht viel).

    Mach's doch einfach so, dass das Ding keine 50 Mal am Tag runtergeladen werden kann. So populär wird die Datei wohl nicht sein, und wenn Mister Scherzkeks dann sein Skript startet (vermute ganz stark, dass es sich um ein Skript handelt, weil ich diese Dinger am laufenden Band produziere und daher weiß, wovon ich sprehce), bekommt er wie jeder andere nach dem 50. Mal die Meldung, dass das Downloadlimit erreicht wurde. So würde ich es zumindest machen.



  • Nein, das ist schlecht. Er wills ein Programm ja schon an den Mann bringen, nehme ich an. Dein Vorschlag vermeidet zwar Schaden, gibt dem Angreifer aber gleichzeitig die Macht, den Download seines Programm nach Belieben zu blockieren. Vielleicht hat er ja Spaß dran, das jeden Tag 50x zu tun, einfach nur, damit jeder andere das Teil ebenfalls nicht herunterladen kann?

    Vorschlag zum Vorgehen:

    1. Traffic-Begrenzung einrichten. Das bedeutet, sobald z.B. x GiB Traffic in den letzten y Tagen/Wochen überschritten wurden, die Geschwindigkeit vorerst auf z.B. 40 kib/s drosseln. Dann kann man es immer noch runterladen und braucht dafür kaum mehr als 20 Minuten dafür. Das ist akzeptabel. Gleichzeitig bräuchte der Angreifer zur Produktion der 30.000 GiB Traffic deines Problemfalls gute 400 Stunden. Das ist (für ihn) inakzeptabel 😉 Und du hättest mehr als genug Zeit, es zu merken und zur Not noch anderweitige Maßnahmen einzuleiten.

    2. Wie schon erwähnt: Temporäre IP-Range-Sperren bei krassem Download-Missbrauch. Das macht's ihm zumindest madiger, wenn er dauernd den Proxy wechseln muss.

    3. Hostingpaket mit unlimitiertem Traffic bestellen! Ich kenne eigentlich kaum einen Anbieter, die da noch Limitierungen drinnehaben. Selbst die Billigtarife um und bei 10€/Monat haben normalerweise unbeschränkten Traffic. Das ist natürlich nur auf dem Papier so - die Kündigen dir bei extremen Datenvolumina. Aber immerhin flattert dir dann keine Rechnung mehr ins Haus.

    Ansonsten würde mir auch nichts weiter einfallen ...



  • da ich auch vermute, das es "nur" ein srcipt ist, könnte ein kompliziertes captcha als schranke zum downloadstart ev. noch helfen.



  • Hi,

    vielen Dank für eure Antworten.

    Kleiner Rechenfehler bei árn[y]ék : 6000*50MB gibt 300GiB, nicht 30.000GiB.
    Und für 6€/Monat bekomme ich
    - 2GB Storage
    - 200 GiB Traffic
    - 4 MySQL DB's
    - Cronejobs
    - 3 DE Domain
    - 1 .NET Domain
    - ...

    Ich denke ich werde aus allen Vorschlägen eine Kombination machen.
    1. Geschwindigkeitsbegrenzung bei mehr als 5 DLs pro Tag (je IP)
    2. Noch stärkere Begrenzung bei mehr als 20 DL's pro Tag (je IP)
    3. Geschwindigkeitsbegrenzung für alle User bei mehr als 50GB/Tag
    4. Abschalten der Downloads bei erreichen von 180GiB für den Rest des Monats

    Unabhängig davon werde ich die Download alternativ auf einen Sharehoster laden und kann somit immer einen funktionierenden Download anbieten.

    Captchas werde ich nicht nutzen, da das (auch bei Audiocaptchas) meine blinden Nutzer stark beeinträchtigen würde.

    Die normale Trafficauslastung liegt sonst bei ca. 100GiB/Monat gesamt, wobei natürlich nur ein Teil der User die "große" portable Version nutzt, alle anderen nehmen den normalen Installer mit 5MB.

    Rai



  • Einfach auf Rapidshare laden und gut ist. 😉
    Wenns OpenSource ist, nimm GoogleCode/Sourceforge/Github oder was auch immer.



  • Ethon schrieb:

    Einfach auf Rapidshare laden und gut ist. 😉

    Würd ich auch sagen 👍



  • bedenke: gleiche IP != gleicher user. in größeren konzernen hängen sehr viele user an wenigen externen IP adressen.

    du solltest dich gezielt gegen bots schützen. denn die 6000 downloads hat sicherlich niemand per hand getätigt.



  • In größeren Konzernen gibt' Administratoren, die die Programme für alle User verwalten. Da lädt auch nur einer oder wenige das Programm herunter. Generell gibt es gegen eine Geschwindigkeitssperre bei sehr vielen Downloads von derselben IP nichts zu sagen. Vor allem ist die Chance verschwindeng gering, dass in einem 500-Mann-Unternehmen 500 Leute plötzlich alle am selben Tag das Bedürfnis verspüren, jeder einmal sein Programm zu laden ...


Anmelden zum Antworten