Ich habe ein PHP-Skript, das den HTTP-Referer überprüft.
if ($_SERVER['HTTP_REFERER'] == 'http://www.example.com/') {...}
Dies scheint jedoch inherintly unsicher ... weil das, was passiert, wenn der Benutzer zu 'http://example.com/'
oder 'http://www.ExaMple.com'
geht (die beide nicht den Gleichheitstest entsprechen).
Frage: Was ist ein besserer Gleichheitstest, um sicherzustellen, dass der HTTP Referer von 'example.com'
kommt?
Sind Sie es für die Verteidigung mit? Wie kann es helfen? –
Es ist nur eine erste Verteidigungslinie (vor allem, wenn ich weiß, dass der Referer gefälscht werden kann). Es schützt zwar nichts Sicheres, aber gleichzeitig möchte ich nicht, dass Leute meinen Webservice missbrauchen, indem sie ihn direkt anrufen. Es ist mehr dazu gedacht, die Leute halbwegs ehrlich zu halten. – Hank
Ein Benutzer kann den http_referer mithilfe von Manipulationsdaten steuern. Der Referer kann jedoch nicht "gefälscht" werden, um in einem CSRF-Angriff verwendet zu werden. – rook