2016-10-07 4 views
1

Ich möchte eine Variable zuweisen, die mit dem Formular übergeben werden soll, das den document.referrer Wert übergibt. Ich benutze das Folgende, das funktioniert. Allerdings mache ich mir Sorgen, dass jemand seinen document.referrer modifizieren könnte, um bösartigen PHP-Code einzufügen.document.referrer auf Schadcode prüfen

Wie kann ich zuerst überprüfen, ob der document.referrer eine Webadresse und nicht ein anderer Code ist, bevor Sie ihn verwenden?

<script type="text/javascript" charset="utf-8"> 

window.onload = function() { 
document.getElementById("prevurl").value=document.referrer; 
} 

</script> 

<input id="prevurl" name="prevurl" type="hidden"></input> 

Antwort

1

Es macht keinen Sinn auf dem Client bei der Validierung ist (zumindest in puncto Sicherheit, kann es natürlich eine schöne UX/Usability-Funktion in vielen Fällen). Alle Prüfungen, die Sie für den Referer implementieren (unabhängig davon, ob dies überhaupt sinnvoll ist), können Angreifer einfach aus dem Javascript entfernen oder einfach einen Wert für die Formularvariable posten. Die Validierung muss serverseitig erfolgen.

Auf dem Server ist der Empfang beliebiger Eingaben (einschließlich einer Zeichenfolge, die zufällig gültiger PHP-Code oder was auch immer ausgewertet wird) sicher. Es ist was Sie damit machen das kann ein Problem sein. Sie müssen vorsichtig sein und beachten, dass alles, was von einer Anfrage kommt, eine Benutzereingabe ist und ein böswilliger Benutzer etwas gesendet haben könnte. Offensichtlich möchtest du es nicht als php eval() evalieren, du willst es nicht in SQL-Abfragen verwenden, ohne auf die SQL-Injection zu achten, du willst es nicht auf eine uncodiert-Seite schreiben (das wäre eine Form von XSS), wollen Sie nicht, dass Ihre Zugriffskontrollentscheidungen direkt auf Benutzereingaben basieren, etc.

Aber nur empfangen (sogar speichern) es ist ok.

+0

Ich sehe. Danke für diese Erklärung. – user2299067