Script eCards
Andreas
- php
Hallo,
habe ein Script erstellt zum Versenden von eCards.
Den Zugriffsschlüssel, damit jeder auch nur seine eigene eCard sieht, habe ich wie folgt erstellt:
$nummer = md5(time());
Meine Frage ist nun, ob ich davon ausgehen kann dass das System sicher vor Manipulationen ist bzw. ob ich davon ausgehen kann, dass keine gleiche Zugriffsschlüssel erstellt werden.
Die eCards lösche ich nach 10 Tagen.
Hier ein Link dazu:
http://www.mariannehopf.de/sites/gal/ecard.php?id=59
Gruß Andreas
Hi,
habe ein Script erstellt zum Versenden von eCards.
Den Zugriffsschlüssel, damit jeder auch nur seine eigene eCard sieht, habe ich wie folgt erstellt:
$nummer = md5(time());Meine Frage ist nun, ob ich davon ausgehen kann dass das System sicher vor Manipulationen ist
nein, das kannst Du nicht. Du verwendest keine technische ID, sondern eine benutzerfreundliche. Beispiel fuer eine technische ID, die keine Bedeutung transportiert:
- 21534564646565641354486
Beispiele fuer bedeutungstragende IDs:
- 20030327222617 (Zeitstempel)
- 011-12345 (Vertragsnummer)
Benutzerfreundliche IDs koennen erraten werden.
bzw. ob ich davon ausgehen kann, dass keine gleiche Zugriffsschlüssel erstellt werden.
Das ist von den Funktionen md5 und time abhaengig. Schau mal in die Doku.
Die eCards lösche ich nach 10 Tagen.
Hier ein Link dazu:
http://www.mariannehopf.de/sites/gal/ecard.php?id=59
Danke, wenn ich mal eine E-Card versenden moechte, werde ich das von dort aus tun.
Gruss,
Ludger
Hallo,
nein, das kannst Du nicht. Du verwendest keine technische ID, sondern eine benutzerfreundliche. Beispiel fuer eine technische ID, die keine Bedeutung transportiert:
Sorry wenn ich wiederspreche. md5(time()) produziert eine 32-stellige Ziffern-Zahlenkombination. Ich würde sagen das ist hochtechnisch und hat mit benutzerfreundlich doch gar nichts zu tun?
Oder verstehe ich dich falsch?
Soll ich zusätzlich auf deren Basis eine Zufallszahl erstellen lassen?
Danke, wenn ich mal eine E-Card versenden moechte, werde ich das von dort aus tun.
War das nun ironisch gemeint? Ansonsten freue ich mich dass dir die Bilder gefallen.
Gruß Andreas
Hi,
Sorry wenn ich wiederspreche. md5(time()) produziert eine 32-stellige Ziffern-Zahlenkombination. Ich würde sagen das ist hochtechnisch und hat mit benutzerfreundlich doch gar nichts zu tun?
also, http://de2.php.net/manual/de/function.md5.php hoert sich gut an, http://de2.php.net/manual/de/function.time.php nicht so gut.
Oder verstehe ich dich falsch?
Soll ich zusätzlich auf deren Basis eine Zufallszahl erstellen lassen?
Neben dem Themenkomplex user friendly ID / technical ID, den ich einfach mal hier ein wenig breittreten wollte (fuers Archiv und so ;-) hast Du natuerlich schon ein kleines Problem, wenn zwei E-Card Anforderungen in derselben Sekunde reinkommen.
Danke, wenn ich mal eine E-Card versenden moechte, werde ich das von dort aus tun.
War das nun ironisch gemeint? Ansonsten freue ich mich dass dir die Bilder gefallen.
Die Website macht einen sympatischen Eindruck auf mich.
Gruss,
Ludger
Hallo,
Neben dem Themenkomplex user friendly ID / technical ID, den ich einfach mal hier ein wenig breittreten wollte (fuers Archiv und so ;-) hast Du natuerlich schon ein kleines Problem, wenn zwei E-Card Anforderungen in derselben Sekunde reinkommen.
OK, klar.
Aber ich gehe davon aus, dass sowas höchstens dann vorkommt, wenn ich die URL der Seite hier bei Problemen poste dass dann gleichzeitig vieleicht 10 Leute zugreifen.
Ansosonsten würde ich wetten friert eher die Hölle zu als dies geschieht. Aber ich werde über eine neue Lösung nachdenken, für den Fall dass jemand die URL bei Gottschalk´s "Wetten dass" laut vorliest ;)
Die Website macht einen sympatischen Eindruck auf mich.
Das freut mich sehr. Ich bin eher ein Freund des Dezenten als des aufdringlichen. Und meine Schwägerin die die Bilder malt freut sich natürlich auch über die Seite.
Noch etwas in diesem Zusammenhang:
Bin vorhin auf ein Thread gestoßen wo das OLG München u.a. ecard Mails als Spam eingestuft haben.
Ich werde also das Script erweitern, indem die eCard Benachrichtigung den Zusatz erhält:
$body .= "Sollten Sie diese Email als störend auffassen, bitten wir dies zu entschuldigen.\n";
$body .= "Klicken Sie hier wenn Sie keine weiteren Grußkarten mehr erhalten möchten.";
$body .= "http://www.mariannehopf.de/sites/gal/ecard.php?action=unsubscribe&id=".$nummer;
Was meinst du? ist doch keine Schlechte Idee dass jemand auf den unsubscribe-Link klickt um sich ein eine "No-Liste" einzutragen.
Denke ich gehe damit irgendwelchem Ärger aus dem Weg.
Natürlich fehlt noch die Reloadsperre, damit jemand nicht x-mal Spam an jemanden sendet.
Gruß Andreas
PS: Ich finde selfhtml gut. Aber doch nicht so gut dass ich eine Benachrichtigung auf meine eigenen Postings möchte. Als nicht eingeloggter muss ich aber wohl damit leben.
Hi,
Bin vorhin auf ein Thread gestoßen wo das OLG München u.a. ecard Mails als Spam eingestuft haben.
Ich werde also das Script erweitern, indem die eCard Benachrichtigung den Zusatz erhält:
$body .= "Sollten Sie diese Email als störend auffassen, bitten wir dies zu entschuldigen.\n";
$body .= "Klicken Sie hier wenn Sie keine weiteren Grußkarten mehr erhalten möchten.";
$body .= "http://www.mariannehopf.de/sites/gal/ecard.php?action=unsubscribe&id=".$nummer;Was meinst du? ist doch keine Schlechte Idee dass jemand auf den unsubscribe-Link klickt um sich ein eine "No-Liste" einzutragen.
und traust Du der Faehigkeit des OLG München? ;-)
(E-Mail ist letztlich immer Spam. Ohne digitale Signatur und "Trustcenter". ;-)
PS: Ich finde selfhtml gut. Aber doch nicht so gut dass ich eine Benachrichtigung auf meine eigenen Postings möchte. Als nicht eingeloggter muss ich aber wohl damit leben.
Ich finde es genauso schlecht wie Du.
Gruss,
Ludger
Hello,
Neben dem Themenkomplex user friendly ID / technical ID, den ich einfach mal hier ein wenig breittreten wollte (fuers Archiv und so ;-) hast Du natuerlich schon ein kleines Problem, wenn zwei E-Card Anforderungen in derselben Sekunde reinkommen.
Außerdem ist md5() nicht eineindeutig. Es gibt also für unterschiedliche Argumente von md5() denselben Rückgabewert. Wie groß die Überschneidungsmenge ist, hängt dabei sicherlich auch von der Länge des übergebenen Argumentes ab. Außerdem bildet md5() nur auf 16wertige Digits ab, das heißt also, dass die 32 Stellen "nur" eine Anzahl von 32^16 Möglichkeiten ergeben.
Warum also nicht die Zahl benutzen, die jeder Apache schon freiwillig zur Verfügung stellt?
$_SERVER['UNIQUE_ID'] ==> QkewWsCoZWMAAAFqDZY
Der Wertevorrat ist wesentlich größer. Die Trefferwahrscheinlichkeit beim Raten ist also sehr viel geringer und das Risiko auf Doubletten sollte sogar vollständig ausgeschlossen sein.
Ich kann nur leider keine Dokumentation darüber finden, wie diese ID gebildet wird.
Vermutet hätte ich sie hier: http://de3.php.net/manual/en/reserved.variables.php
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
Außerdem ist md5() nicht eineindeutig. Es gibt also für unterschiedliche Argumente von md5() denselben Rückgabewert.
Ups, daran hab ich nicht gedacht.
$_SERVER['UNIQUE_ID'] ==> QkewWsCoZWMAAAFqDZY
Probier ich gleich mal aus, habe diese Servervariable noch nie verwendet.
Gruß und Danke,
Andreas