2009-06-06 16 views
2

Wie kann der Zugriff auf bestimmte URL-Seiten verhindert werden?Wie kann der Zugriff auf bestimmte URL-Seiten verhindert werden?

Wenn ich in meinem webapp root form.html, processFrom.php and getResults.php habe, obwohl processFrom.php keinen Inhalt zurückgibt, wie kann ich verhindern, dass der Benutzer auf diese Datei zugreifen, indem Sie die URL eingeben?

Antwort

10

Vermutlich greifen Sie immer nur sie über eine include Aussage, oder ähnliches? Am sichersten wäre es, wenn Sie es an einem anderen Ort auf Ihrem Dateisystem speichern und von dort aus einbinden.

Alles, was nicht vom Web-Server bedient wird, soll nicht unter dem Web-Root gehalten werden.

0

Wenn Sie mit einem Apache-Webserver arbeiten würde ich vorschlagen, eine .htaccess-Datei zu erstellen und den Zugriff die Datei zu verweigern.

Diese Links sollten Sie Setup eine .htaccess-Datei Ihrer Bedürfnisse helfen.

http://httpd.apache.org/docs/2.2/mod/core.html#files

Beispiel .htaccess:

<Files processFrom.php> 
Order allow,deny 
Deny from all 
</Files> 
2

Die bestehenden Antworten nehmen an, dass processForm.php nur Code enthält, und ist nicht die Seite in der "action" -Attribut des Formulars angegeben. Falls diese Annahme falsch ist, antworte ich, dass Sie diese Seite direkt zur Verarbeitung der POST-Anfrage verwenden möchten, die von Ihrem Formular generiert wurde, aber dass Sie verhindern wollen, dass irgendjemand versehentlich oder böswillig Code in dieser Datei ausführt.

In diesem Fall können Sie die Datei nicht verbergen, als empfohlen. Stattdessen könnten Sie ein Token verwenden, das erstellt wird, wenn das Formular angezeigt wird, in einer Sitzungsvariablen gespeichert ist, und auch mit der Form (< input type = „hidden“ .../>) vorgelegt. Bevor Sie eine Verarbeitung in processForm.php vornehmen, überprüfen Sie, ob das Token vorhanden ist und mit dem in der Sitzungsvariablen übereinstimmt. Außerdem sollten Sie immer alle Formulareingaben bereinigen. Es ist nicht zu stoppen, dass jemand, was immer Sie wollen, Ihr Skript einreicht, solange es im Web zugänglich ist.

Verwandte Themen