Euphoria: Download Seite und ihre Sicherheit

Hallo,

Ich möchte eine einfache Seite erstellen, wo eine Testversion einer Software zum Download angeboten wird.

Auf der ersten Seite soll der Besucher seinen Namen, Adresse und so weiter eingeben und eine checkbox für den Disclaimer abhaken, dann auf einen Button "Weiter zum Download" klicken, die ihn auf die Download-Seite verweist.
(Beim Klick wird aus den eingegebenen Daten ein Code generiert, der dem Besucher via eMail verschickt wird, welchen er dann nutzen muss, um die Software zu aktivieren. Eine andere Mail wird an den Admin geschickt, mit eben allen angegebenen Informationen.)

Auf der zweiten Seite soll dann automatisch der Download gestartet werden.
Soweit kein Problem.

ABER:
Wie mache ich das Ding sicher? Man kann doch immer aus der ersten Seite die URL von der zweiten rauslesen, und so direkt auf die Zweite springen, die dann eben den Download startet. So hat man zwar nicht den benötigten Code, aber die Software!

Wie könnte man das mit einfachen Mitteln relativ sicher machen.

Das Umfeld ist ein normaler Webspace (all-inkl.de), also kein eigener Server.

PS: Ich kenne mich mit kaum mit solchem Kram aus, also bitte möglichst leicht verständliche Antworten! :-)

Wenn man mir ansonsten Verbesserungsvorschläge liefern kann, darum wäre ich auch dankbar!

MfG,
Euphoria

  1. Liebe(r) Euphoria,

    informiere Dich über Sessions. Damit kannst Du erzwingen, dass ohne vorherige Eingaben kein Download möglich ist, sondern stattdessen das Eingabeformular wieder angezeigt wird.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Aber man kann doch immernoch aus der Seite trotzdem den Link zur zweiten (Download Seite) rauslesen und so einfach die Registrierung überspringen?

      1. Aber man kann doch immernoch aus der Seite trotzdem den Link zur zweiten (Download Seite) rauslesen und so einfach die Registrierung überspringen?

        Es kommt auch darauf an, wie man die Session implementiert. Wird der Sitzungsschlüssel im URL übergeben (http://muster.domain/?SESSIONID=56d8s7f68as7f58dsf7&var=param), kann die Registrierung übersprungen werden, für die Zeit, die die Session gültig. Zwangsläufig nimmt man daher Cookies, die erheblich schwerer zu portieren sind.

        Gruß aus Berlin!
        eddi

        1. Hi,

          Es kommt auch darauf an, wie man die Session implementiert. Wird der Sitzungsschlüssel im URL übergeben (http://muster.domain/?SESSIONID=56d8s7f68as7f58dsf7&var=param), kann die Registrierung übersprungen werden, für die Zeit, die die Session gültig.

          Die Gültigkeit zu begrenzen bzw. zu beenden, hat man ja selber in der Hand.

          MfG ChrisB

          --
          “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
          1. Hallo Chrisb,

            Es kommt auch darauf an, wie man die Session implementiert. Wird der Sitzungsschlüssel im URL übergeben (http://muster.domain/?SESSIONID=56d8s7f68as7f58dsf7&var=param), kann die Registrierung übersprungen werden, für die Zeit, die die Session gültig.
            Die Gültigkeit zu begrenzen bzw. zu beenden, hat man ja selber in der Hand.

            der Programmemittent muss es in der Hand haben, weil er seinen „Disclaimer“ gelesen sehen will. Wie ihm dabei, die Gültigkeit zu begrenzen oder die Session zu beenden, entgegenkommen soll, sehe ich anhand deines »ausführlichen« Kommentars nicht.

            Gruß aus Berlin!
            eddi

            1. Hi,

              Die Gültigkeit zu begrenzen bzw. zu beenden, hat man ja selber in der Hand.

              der Programmemittent muss es in der Hand haben, weil er seinen „Disclaimer“ gelesen sehen will. Wie ihm dabei, die Gültigkeit zu begrenzen oder die Session zu beenden, entgegenkommen soll, sehe ich anhand deines »ausführlichen« Kommentars nicht.

              Welches Verständnisproblem du hast, ersehe ich aus deiner Wortmeldung leider auch nicht.

              MfG ChrisB

              --
              “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
      2. Hallo

        Aber man kann doch immernoch aus der Seite trotzdem den Link zur zweiten (Download Seite) rauslesen und so einfach die Registrierung überspringen?

        Mit der Session kann man aber sicherstellen, dass die Daten angegeben wurden. Auf der Seite mit dem Forumlar wird die Session gestartet. Der Benutzer gibt seine Daten ein und schickt das Formular ab. Die übergebenen Daten werden in der Session gespeichert und die Downloadseite wird mit dem Link oder Button zum Download des Programms an den Browser geschickt, *wenn* alle nötigen Daten vorliegen.

        Wird die Downloadseite aufgerufen, ohne dass die Daten vorliegen, wird anstatt der Downloadmöglichkeit eine Fehlermeldung samt Link zur Seite mit dem Formular ausgegeben. Alternativ kann man direkt zum Formular umleiten. Gegebenenfalls wird bei der Umleitung ein Parameter an die URL gehängt, um hernach beim Formular eine Meldung auszugeben, warum man (wieder) dort gelandet ist.

        Damit man auf der Downloadseite nicht die direkte Adresse der herunterzuladenden Datei angeben muss, kann man dort ein weiteres Skript zwischenschalten und den gewünschten Download als Parameter angeben. Das könnte z.B. die von Eddi vorgeschlagene einmalige, zeitlich beschränkte ID sein, die beim vorherigen Absenden des Formulars generiert wird.

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        Veranstaltungsdatenbank Vdb 0.3
  2. Hallo Euphoria,

    wie Felix schon schrieb, können Session hier eine Lösung darstellen. Selbst bin ich davon nicht so begeistern, weil ein sicheres Sessionmanagement in Deinem Fall zwingend Cookies verwenden müsste. Persönlich verweigere ich die Annahme von Cookies rigoros mit der Begleiterscheinung, geschätzte 15 bis 20 Prozent der Inhalte gar nicht sehen zu können. Was aber auch nicht die Lösung sein kann, jemanden zur Annahme von Cookies zu nötigen.

    Eine Alternative zu Session wäre, für jedes vollständige Formular einen unikaten Link für den down load zu generieren, der eine gewisse Zeitspanne gültig ist, nur ein mal angeklickt werden kann und danach nicht mehr erreichbar ist. Dieses entspräche in Prinzip und programmiertechnischer Umsetzung den Verweisen, die man zugesendet bekommt, wenn man für ein bestimmtes site sein Passwort vergessen hat. Daher vermute ich, dass es für die Umsetzung dieser Art haufenweise Vorlagen und Fertigscripte im Internet gibt.

    Gruß aus Berlin!
    eddi

  3. Hey!

    Wenn man mir ansonsten Verbesserungsvorschläge liefern kann, darum wäre ich auch dankbar!

    Meine Lösung wäre:
    1. Formular anzeigen
    2. Eingaben in eine DB speichern + Datum
    3. Mail an User mit Aktivierungslink (z.B. mit ID des Datensatzes in der Tabelle + weiterem Vergleichswert)
    4. bei Linkaufruf, den Aktivierungslink gegen den DB-Eintrag prüfen
    5. bei erfolgreicher Prüfung Script mit Download starten und Mail an Admin bzw. Eintrag in einer zweiten Tabelle und deren Einträge dann automatisiert aller x Stunden oder Tage eine Mail an den Admin; Eintrag aus der DB löschen
    6. ansonsten Fehlermeldung und Formular anzeigen
    7. Verfallene Einträge in der DB löschen

    Vorteile:
    keine Session, keine Cookies, kein direkter Download-Link
    Nachteil:
    Du brauchst eine Datenbank und in der stehen dann auch noch persönliche Daten der Benutzer.

    Grüße, Matze

  4. Noch was ernüchterndes :-)
    Du glaubst wirklich dass da sinnvolle Namen und weitere Informationen eingegeben werden?
    Solche Angaben sind eigentlich nur dazu gut, um jemandem Werbung zu mailen. Und dagegen schützt sich wer kann.