最初に読んでね ダウンロード 検索 ユーザー登録する 連絡 マイストア ログイン  
このトピックはロックされているので記事編集または返信投稿はできません htaccessを用いたアクセス制限 このエントリーを含むはてなブックマーク
ページ直接移動 1, 2  次のページへ≫
htaccessを用いたアクセス制限
taicyo99
投稿入門者さん
投稿入門者さん

登録日: 2007.11.16
記事: 8
引用付きで返信する
phpBB パッケージ: UTF-8日本語版
本体バージョン: 2.0.22
MOD インストール: いいえ
インストール済み MOD(s):

質問者の phpBB レベル: 設置成功
phpBB 設置URL: http://
レンタルサーバー URL: http://
PHP バージョン: 4.__.__
データベースバージョン: MySQL _.__.__|

以下詳細:

はじめまして

PHPBBで作成したサイトに対し、htaccessとリファラーを利用したアクセス制限を考えています。

やった事

htaccessでリファラーチェックを行い、アクセス制御が出来たように見えた
しかし、メールの送信後等のように自動でページが移動する場合にNoリファラーで403エラーとなる

通常のリンクを押してのページ移動では問題なく動作する

やりたい事(どちらでもいいです)

・自動でページが変わるのを止める
・自動でページが変わる際にもリファラーを発行するようにする

どちらでもかまわないわけですが、どうかよろしくご教授ください
ユーザーのプロフィールを表示taicyo99 の記事をすべて検索プライベートメッセージを送信
Re: htaccessを用いたアクセス制限
hiikun
あどみん
あどみん

登録日: 2005.03.16
記事: 830
所在地: 大阪府
引用付きで返信する
taicyo99 の記述を引用:
htaccessでリファラーチェックを行い、アクセス制御が出来たように見えた
しかし、メールの送信後等のように自動でページが移動する場合にNoリファラーで403エラーとなる

通常のリンクを押してのページ移動では問題なく動作する

やりたい事(どちらでもいいです)

・自動でページが変わるのを止める
・自動でページが変わる際にもリファラーを発行するようにする

リファラはブラウザ側の情報提供ですから、プログラム側ではどうしょうもないですね。
試してないので動作がわからないんですが、meta タグの refresh によるリダイレクトがそうさせているのでしょうか?

もう少し詳しく。


ps.
なお、新規の質問は保留とさせていただきます。
この質問が解決(または放棄)され次第、解除いたします。

_________________

Arrow 【ニューリリース】2.0.23/3.0.0

マイホームノートアイテム探索小都市
ユーザーのプロフィールを表示hiikun の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
taicyo99
投稿入門者さん
投稿入門者さん

登録日: 2007.11.16
記事: 8
引用付きで返信する
回答ありがとうございます。

引 用:

リファラはブラウザ側の情報提供ですから、プログラム側ではどうしょうもないですね。
試してないので動作がわからないんですが、meta タグの refresh によるリダイレクトがそうさせているのでしょうか?


たぶんそうだと思うのですが、基本のPHPBBで記事を投稿したあと、自動的にrefreshされた際にはリファラが空になってしまうようです。
ちなみにrefreshされる前に何らかのリンクを押した場合はリファラはちゃんと残っていて問題なく動作するようです。

・・・ということはmetaタグを外してしまえばいいということになるのでしょうか?
ユーザーのプロフィールを表示taicyo99 の記事をすべて検索プライベートメッセージを送信
hiikun
あどみん
あどみん

登録日: 2005.03.16
記事: 830
所在地: 大阪府
引用付きで返信する
taicyo99 の記述を引用:
たぶんそうだと思うのですが、基本のPHPBBで記事を投稿したあと、自動的にrefreshされた際にはリファラが空になってしまうようです。
ちなみにrefreshされる前に何らかのリンクを押した場合はリファラはちゃんと残っていて問題なく動作するようです。

・・・ということはmetaタグを外してしまえばいいということになるのでしょうか?

全ファイルにGrep検索すると、たくさん抽出してきて辟易しますが、一番手っ取り早い方法を載せておきます。
以下を試してください。下の方のACPの部分はお好みで。
コード:
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/overall_header.tpl
#
#-----[ FIND ]------------------------------------------
#
<meta http-equiv="Content-Style-Type" content="text/css">
{META}
{NAV_LINKS}
#
#-----[ REPLACE WITH ]------------------------------------------
#
# deleted: {META}
#
<meta http-equiv="Content-Style-Type" content="text/css">
{NAV_LINKS}
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/simple_header.tpl
#
#-----[ FIND ]------------------------------------------
#
</style>
{META}
<title>{SITENAME} :: {PAGE_TITLE}</title>
#
#-----[ REPLACE WITH ]------------------------------------------
#
# deleted: {META}
</style>
<title>{SITENAME} :: {PAGE_TITLE}</title>
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM

_________________

Arrow 【ニューリリース】2.0.23/3.0.0

マイホームノートアイテム探索小都市
ユーザーのプロフィールを表示hiikun の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
ocean
常連さん♪
常連さん♪

登録日: 2006.02.26
記事: 136
引用付きで返信する
taicyo99 の記述を引用:
・・・ということはmetaタグを外してしまえばいいということになるのでしょうか?


こちら を参考にする限りでは、
HTTPヘッダ、METAタグ の Refresh だと リファラが空 になり、
HTTPヘッダ の Location だと リファラは空にならない
みたいです。

includes/functions.php の redirect 関数 の
コード:
   // Redirect via an HTML form for PITA webservers
   if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')))
   {
      header('Refresh: 0; URL=' . $server_protocol . $server_name . $server_port . $script_name . $url);
      echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="refresh" content="0; url=' . $server_protocol . $server_name . $server_port . $script_name . $url . '"><title>Redirect</title></head><body><div align="center">If your browser does not support meta redirection please click <a href="' . $server_protocol . $server_name . $server_port . $script_name . $url . '">HERE</a> to be redirected</div></body></html>';
      exit;
   }

   // Behave as per HTTP/1.1 spec for others
   header('Location: ' . $server_protocol . $server_name . $server_port . $script_name . $url);
   exit;

を見る限りでは、ウェブサーバが IIS とか(PITA ってなんだろう?)だと Refresh を使うようにプログラムされてるみたいです。Apache だと Locationヘッダ を使うみたいですね。(taicyo99 さんがお使いのウェブサーバはもしかして IIS なのかな?)

解決策としては、
コード:
// Redirect via an HTML form for PITA webservers
   if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')))
   {
      header('Refresh: 0; URL=' . $server_protocol . $server_name . $server_port . $script_name . $url);
      echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="refresh" content="0; url=' . $server_protocol . $server_name . $server_port . $script_name . $url . '"><title>Redirect</title></head><body><div align="center">If your browser does not support meta redirection please click <a href="' . $server_protocol . $server_name . $server_port . $script_name . $url . '">HERE</a> to be redirected</div></body></html>';
      exit;
   }

の部分をそっくり削除してしまうのが手っ取り早いでしょうか・・。多分この部分を削除しても問題ないような気もします。試してみる価値はあるとおもいます。
ユーザーのプロフィールを表示ocean の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
閑話休題
hiikun
あどみん
あどみん

登録日: 2005.03.16
記事: 830
所在地: 大阪府
引用付きで返信する
ocean の記述を引用:
// Redirect via an HTML form for PITA webservers
if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')))
{

を見る限りでは、ウェブサーバが IIS とか(PITA ってなんだろう?)だと Refresh を使うようにプログラムされてるみたいです。Apache だと Locationヘッダ を使うみたいですね。(taicyo99 さんがお使いのウェブサーバはもしかして IIS なのかな?)

PITA
ぼくも知らなくて、いろいろ検索してみたんですが、
PITA って、サーバーの名前ではなくスラング?(隠語?)みたいなカンジのような気がします。 Shocked

Wiktionary
例文(じゃないけど) 問: オープンソースなプロジェクトに参加したきっかけは ? の部分

PITA webservers
言いかえれると、もっさりサーバーっていうことでしょうか? Razz

関係なくてすんません。 Wink

_________________

Arrow 【ニューリリース】2.0.23/3.0.0

マイホームノートアイテム探索小都市
ユーザーのプロフィールを表示hiikun の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
Re: 閑話休題
ocean
常連さん♪
常連さん♪

登録日: 2006.02.26
記事: 136
引用付きで返信する
hiikun の記述を引用:
PITA
ぼくも知らなくて、いろいろ検索してみたんですが、
PITA って、サーバーの名前ではなくスラング?(隠語?)みたいなカンジのような気がします。 Shocked

Wiktionary
例文(じゃないけど) 問: オープンソースなプロジェクトに参加したきっかけは ? の部分

PITA webservers
言いかえれると、もっさりサーバーっていうことでしょうか? Razz

関係なくてすんません。 Wink

わざわざ調べて頂いて恐縮です・・。そうですか、スラングだったんですね。てっきりサーバー名なのかな、と・・。英辞朗にも確かに載ってました。直訳すると 「手を焼くサーバー」、「うんざりさせるサーバー」、スラングっぽく訳すと 「もっさり?サーバー」 ということですね。
ユーザーのプロフィールを表示ocean の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
解決案その2
ocean
常連さん♪
常連さん♪

登録日: 2006.02.26
記事: 136
引用付きで返信する
案その2です。先に私が提示した解決案が
taicyo99 の記述を引用:
・自動でページが変わる際にもリファラーを発行するようにする

を目指したのに対し、今度のは
taicyo99 の記述を引用:
・自動でページが変わるのを止める

を目指した解決案です。
私の解決案その1が駄目で、かつ hiikun さんの解決案でも駄目な場合に試してみてください。(できれば全ての解決案の結果報告を期待してます。)

コード:
#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php
#
#-----[ FIND ]------------------------------------------
#
   // Redirect via an HTML form for PITA webservers
   if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')))
   {
      header('Refresh: 0; URL=' . $server_protocol . $server_name . $server_port . $script_name . $url);
      echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="refresh" content="0; url=' . $server_protocol . $server_name . $server_port . $script_name . $url . '"><title>Redirect</title></head><body><div align="center">If your browser does not support meta redirection please click <a href="' . $server_protocol . $server_name . $server_port . $script_name . $url . '">HERE</a> to be redirected</div></body></html>';
      exit;
   }

   // Behave as per HTTP/1.1 spec for others
   header('Location: ' . $server_protocol . $server_name . $server_port . $script_name . $url);
   exit;
#
#-----[ REPLACE WITH ]------------------------------------------
#
      echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Redirect</title></head><body><div align="center">please click <a href="' . $server_protocol . $server_name . $server_port . $script_name . $url . '">HERE</a> to be redirected</div></body></html>';
      exit;
ユーザーのプロフィールを表示ocean の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
回答案ありがとうございます
taicyo99
投稿入門者さん
投稿入門者さん

登録日: 2007.11.16
記事: 8
引用付きで返信する
>Oceanさん
>hiikunさん

ご教授ありがとうございます。
明朝(23日)の早朝に各案をテスト実施してみます。

どのような結果が出るか私も楽しみです。

また、CentOSで動いているはずなんですが、なぜIISに・・・
何か設定が違っているのかな?
ユーザーのプロフィールを表示taicyo99 の記事をすべて検索プライベートメッセージを送信
実験結果
taicyo99
投稿入門者さん
投稿入門者さん

登録日: 2007.11.16
記事: 8
引用付きで返信する
報告が遅くなってゴメンナサイ。

実験結果ですが、

引 用:
・自動でページが変わる際にもリファラーを発行するようにする


では、やはりダメなようでした。
サーバ上の問題なのでしょうか?CentOS+ApacheなのでIISじゃ無いはずなんですが・・・
もっさりサーバーなのかな?

ですが、

引 用:
・自動でページが変わるのを止める


で一応の解決を見ました。
[/quote]
ユーザーのプロフィールを表示taicyo99 の記事をすべて検索プライベートメッセージを送信
バリュードメイン
htaccessを用いたアクセス制限
新規投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
投票参加: 不可
添付アップロード: 不可
添付ダウンロード: 不可
All times are GMT + 9 Hours (JST)  
Page 1 of 2  

  
  
 このトピックはロックされているので記事編集または返信投稿はできません    

Board Security

3145 Attacks blocked

Powered by phpBB © phpBB Group
Design by phpBBStyles.com | Styles Database.
Traduction par : PHPBB JAPAN / UTF-8 i18n Edition : JP Support Forum
Content © phpBB2 日本語サポートフォーラム
[ Debug on | page generation = 0.97848 seconds | sql queries = 20 ]
Feed RSS 2.0
JP Support Forum
SourceForge.jp