Sven Rautenberg: Bilder, Header, Caching?

Beitrag lesen

Moin!

ich bin verstockt oder zu doof.

Solange keiner weiß, wie der MD5-Hash generiert wird, kann er doch auch keine gültige URL schicken, oder nicht?

Du generierst eine gültige URL. Wer diese URL kennt, kann auf das Bild zugreifen. Diese URL ist aber bei deinem jetzigen Schema _immer_ gültig. Das Skript prüft nur, ob gewisse Daten der URL zu gewissen anderen Daten der URL passen. Und das ist immer der Fall.

Dass du noch einen konstanten Faktor $secret in den MD5-Hash einbringst, ist irrelevant, weil dieser ja _konstant_ ist, für jeden Benutzer. Er bringt also keine zusätzliche Prüfbarkeit hinein, er verhindert nur, dass man beliebige URLs selber generieren kann, um auf andere Bilder zuzugreifen.

Du verhinderst also, dass jemand auf andere als die in der Seite enthaltenen Bilder zugreifen kann. Das kann aber sowieso nicht, wenn man den exakten Bildnamen nicht kennt, und kein Directory-Listing hat. Das Ausprobieren wird dabei nur sehr viel schwieriger bei so offensichtlichen Namen wie "bild0001.jpg" - wer würde da nicht "bild0002.jpg" testen? Das geht mit MD5 nicht - es wäre auch ohne $secret sehr schwer, weil man das Bildungsgesetz für den MD5-Hash ja kennen müßte.

Wie dem auch sei, wahrscheinlich hast Du Recht und es ist besser, direkt im anzeigenden Script die Berechtigung zu prüfen...

Das ist besser, wenn deine Sicherheitsprüfungen einen Sinn haben sollen.

- Sven Rautenberg