2009-06-06 12 views
2

特定のURLでリクエストされたページへのアクセスを防止するにはどうすればよいですか?特定のURL要求ページへのアクセスを防止するにはどうすればよいですか?

ウェブアプレットのルートにform.html, processFrom.php and getResults.phpがある場合、processFrom.phpはコンテンツをエコーし​​ませんが、URLを入力してこのファイルにアクセスできないようにするにはどうすればよいですか?

答えて

10

おそらくあなたはincludeの声明などでアクセスしたことがありますか?あなたの最も安全な賭けは、あなたのファイルシステム上の他の場所に置いてそこからインクルードすることです。

Webサーバーによってサービスされていないものは、Webルートの下に置かないでください。

0

Apache Webサーバーで作業するときは、.htaccessファイルを作成し、そのファイルへのアクセスを拒否することをお勧めします。

これらのリンクは、必要に応じて.htaccessファイルを設定するのに役立ちます。

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

例の.htaccess:

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

既存の答えはprocessForm.phpはコードのみが含まれており、フォームの「アクション」属性で指定したページではないことを前提としています。この仮定が間違っている場合は、フォームから生成されたPOSTリクエストをこのページで直接処理したいが、誰かがこのファイルのコードを誤ってまたは悪意のあるように実行しないようにしたいと考えて答えます。

この場合、推奨どおりにファイルを非表示にすることはできません。代わりに、フォームの表示時に作成され、セッション変数に格納され、フォーム(<入力タイプ= "hidden" .../>)とともに送信されるトークンを使用できます。 processForm.phpで処理する前に、トークンが存在し、セッション変数のトークンと一致することを確認します。また、すべてのフォーム入力を常にサニタイズする必要があります。ウェブにアクセス可能であれば、スクリプトに欲しいものを投稿しても誰も止めることはできません。