- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ローカルにあるhtmlのフォームからのデータ取得について)
ローカルにあるhtmlのフォームからのデータ取得について
このQ&Aのポイント
- ローカルに保存しているhtmlのフォームからデータを取得する際に、サーバー上での処理を防ぐ方法を教えてください。
- RedhatLinux7.2+apache1.3.26+php4.2.2の環境で、ローカルに置いたHTMLファイルからPOSTされたデータがサーバー側で処理されてしまう問題があります。
- register_globalがOnになっている場合でも、$_POSTを使用してデータを取得することができます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
test.php で、HTTP_REFERER が http://www.hogehoge.com/~ であることを チェックして、そうじゃなければ、処理をせずに抜けちゃう、もしくは、エラーページに飛ばす。
その他の回答 (3)
- a-kuma
- ベストアンサー率50% (1122/2211)
回答No.4
> apache側の設定で拒否する方法とかはないでしょうか? 試してないけど、こんな感じでできるかも。 SetEnvIf Referer www\.hogehoge\.com valid_referer <Directory /~> Order Deny,Allow Deny from all Allow from env=valid_referer </Directory>
- kagep
- ベストアンサー率23% (171/721)
回答No.3
なるほど、そこまで深い実情だったんですね。 私も#2の方と同じ解決法を取ると思います。
- kagep
- ベストアンサー率23% (171/721)
回答No.1
あの・・・ 基本的にHTMLというのはローカルで動いているんです。 サーバー上にあるHTMLをHTTPでローカルに転送し、 一時領域に取り込んでブラウザで表示しているんです。 <FORM action="http://www.hogehoge.com/test.php" method="post"> とフルパスで書いてある以上、POSTが成功するのは当然です。 相対パスで記述すればOKなのではないでしょうか???
質問者
補足
ありがとうございます。 いくら相対パスで記述していても、フォームのあるページをユーザがダウンロードしてactionのところを目的URLに変えて自分のPCなどで保存してPOSTすれば処理されてしまいますよね? それをされたくないので質問をさせていただいたのです。 あいまいな質問ですいませんでした。
お礼
ありがとうございます。 やはり$_SERVER['HTTP_REFERER']をチェックする方法しかないのでしょうか。 なるべくグローバルな設定で切り抜けられないかと思ったのですが・・・。 apache側の設定で拒否する方法とかはないでしょうか?