Was mir gerade noch eingefallen ist. Ich hatte in einem anderen Bereich auch sowas mit einem Hash angedacht, doch immer ein Problem damit, dass der Hash ja ab Zeitpunkt X verfällt. Also z.B. bei 24 Std. um 00:00 Uhr. Bei Stunden jedesmal bei 00 Minuten usw.
Jetzt ist mir dazu eine Lösung eingefallen. Man könnte einen Hash nach Minuten generieren:
Code: Alles auswählen
&hash=<?= md5('GEHEIMERsalt' . date('i')); ?>
Und bei der Abfrage prüft man einfach gegen den Hash der aktuellen Minute und der letzten Minute (oder noch weiter zurück, je nachdem wie lange man den Hash als gültig akzeptiert). Man muss nur darauf achten, dass man bei Minute 00 wieder auf Minute 59 wechselt.
Hätte ich auch mal früher drauf kommen können
Du könntest z.B. max. 2 Minuten als gültig akzeptieren. Ich denke mal dass Deine XML-File in der Minute geladen wird, in der die Seite geöffnet wird. Falls sich also jemand die Mühe macht und die URL in Deinem Script sucht und manuell öffnet, ist sie schon verfallen (vorausgesetzt er braucht länger als 2 Minuten, daher sollte man die URL zusätzlich ruhig verschlüsseln, damit auch ein Pro was länger braucht, um die URL zu decodieren).
Um das zu umgehen müsste ein Pro sich zwei mal mit dem Script auseinandersetzen und etwas unter Druck arbeiten. Oder er schreibt sich ein Script das Deine Seite ausließt, die URL decodiert und dann Deine Quelle ausließt.
Dagegen würde nur helfen, wenn Du den Referer in der XML-Quelle beim Besucher voraussetzt. Also:
Code: Alles auswählen
if (strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) !== false) {
Es gibt allerdings Besucher, die den Referer mit Anti-Spy-Ware deaktivieren. Und da der Referer gefälscht werden kann, könnte auch ein Pro diesen manuell übergeben. Darauf muss ein Pro aber erstmal kommen.
So mehr fällt mir jetzt wirklich nicht mehr ein, wie man die Quelle sicher könnte
