md5
-
über nen link will ich eine id an ein anderes script übergeben. Anhand dessen ich userdaten lösche, nur will ich verhindern das der user einfach beim neuladen der seite einen anderen wert in der url eingibt und andere user daten löscht.
-
Dann übergebe halt z.B. noch eine Prüfsumme o.ä.
-
wie prüfsumme
ein Bsp. wäre nett, da ich sowas noch nie gemacht habe
-
Angenommen du übergibst username, email und homepage. Jetzt bastelst du dir daraus einen String - sodass möglichst nur du weißt wie es geht, also nicht einfach aneinanderhängen - und lässt zB. md5 drüberlaufen. Diese ID übergibst du zusätzlich mit der URL. Vor dem löschen bildest du nochmal die Checksumme mit den übergebenen Daten und vergleichst sie mit der übergebenen Checksumme
-
sollte ich das dann nicht eher mit sessions machen oder nimmt sich das nicht viel
-
du musst doch dann aber trotzdem überprüfen, welcher datensatz gelöscht werden soll. Sessions sind sicher nicht verkehrt, aber ich weiß ja nicht genau, was du vorhast
-
es geht mir bei der Übertragung der id über den link auf die echtheitzprüfung/codierung (ob user wert verändert hatt).
und wenn ich die daten in einer session speicher kann ich den part ja weglassen da der user keinlerlei einfluss (von außen)auf den wert hatt.
und ich wollte wissen welcher der wege der einfachere/schnellere -> bessere ist
-
Wenn es dir nur darum geht sind Sessions genau das Richtige für dich
Vorhin hattest du gesagt, du willst anhand dessen Userdaten löschen
-
Ich hab ne Tabelle wo emailadressen angezeigt werden. Der user soll auf nen link drücken neben der email adresse um diese zu löschen. Dafür muss ich die emailid übergeben um sie daran zu löschen.
-
Aber was bringen dir das Sessions? Und was würde es machen, wenn der User die E-Mail-Adresse abändert - er kann doch im Prinzip eh alle löschen
-
na es gibt mehrere user und alle e-mails von allen usern sind in der datenbank und somi könnte er auch e-mails von anderen löschen.
Das geht nur über checksum
keiner ein bsp.
-
Dann hänge doch beim DELETE einfach noch die Bedingung mit dran, die du schon bei dem SELECT für die Anzeige verwendet hast
-
das kann ich doch nicht machen. Da ich die email aus mehreren tabellen löschen muss.
-
Naja, dann mach es einfach wie du es für richtig hältst - oder sag halt mal genau, was du machen willst und wie deine DB aufgebaut ist
-
Alles was per URL übergeben wird kann geändert werden. Prüfsummen sind deswegen auch leicht manipulierbar. Je nach Algo dauert es unterschiedlich lange. Wozu aso diese Sicherheitslücke einbauen?
Jede Seite checkt selber, ob der User die Aktion ausführen darf. Alles andere ist Blödsinn.
-
ne den gesamte aufbau der db kann ich dir nicht erklären da der irgendwie total verworen ist und ich keine lust habe hier romane zu veröffentlichen geschweige den zu nem ASCII künstler zu werden.
ich mache es einfach über checksumme.
thx und danke mosta
-
@Shade Of Mine da das ein reiner user bereich seien soll glaube ich kaum das die sich soviel mühe machen werden und sie im andernfall einfach auf dumme gedanken kommen könnten
-
Aber Shades Lösung ist doch eigentlich auch nicht viel aufwendiger
- warum also nicht gleich richtig
-
Wenn es ein Userbereich ist dann muss sich der User sowieso einloggen. Wie könntest du ihm sonst sein Emailadresse anzeigen wenn es hier nicht eine ID geben würde.
User logt sich mit z.B. bla ein. (ID in Session speichern) In der DB steht bla für die ID 234. Alle Datensätze (Emailadressen) haben so ein ID-Feld. Will der User nun löschen wird einfach die DELETE so formuliert das er nur die löschen kann welche als ID 234 haben.
-
flenders schrieb:
geht eigentlich gar nicht, denn md5 ist ein einseitiges Verschlüsselungsverfahren!
Ja, aber schonmal das hier gesehen?
function md5_to_chr($md5_code) { for ($i = 0; $i < 256; ++$i) { if ($md5_code == md5(chr($i))) { return chr($i); } } return false; }
Funzt zwar nur bei einzelnen Zeichen, die verschlüsselt wurden, aber mir zeigt es, dass es nicht gerade sehr sicher ist.