質問箱/3041

カテゴリ
サマリ一部のページをIP(ネットワーク)からアクセス制限
バージョン1.4.5
投稿者nagaji?
状態完了
投稿日2005-04-26 (火) 00:30:44

質問

一部のページにネットワーク(IP)でアクセス制限(LAN内からのみアクセス可能に)したいのですが、なにか方法はありますか?

調べたところ、パスワード認証なら一部のページでもできるのはわかったのですが、ネットワークでの制限はわかりませんでした。

(.htaccessを用いると該当フォルダ以下すべてに制限がかかってしまい、Pukiwikiは同じフォルダ以下に作ったページができるので、ネットワークでの制限は一部のページにかけられない結果に。)

回答

  • そういうことは複数のPukiWikiをたててやればできるような。一つだけでやろうとするのは何か違う気がします。 -- 2005-04-26 (火) 00:44:51
  • dev:BugTrack/251で提案されているようですけど、あまり前向きには検討されていないようですね。実装自体はそれほど難しくないような気がしますが。 -- teanan 2005-04-26 (火) 02:24:47
  • こんな感じでいけてないですか? 「指定されたIPアドレスは認証の必要がない」という形で実装しています。全ページに閲覧認証&編集認証をかければ、指定されたIPアドレス以外はBasic認証画面が表示されるようになります。 -- teanan 2005-04-26 (火) 03:27:50
    pukiwiki-1.4.5_1
    pukiwiki.ini.php: 206行目付近
      $auth_method_type = 'contents';
    +
    + // Permitted IP address without authentication
    + $auth_permitted_ip = array(
    + 	'127.0.0.1',
    + 	'192.168.',
    + );
    
    lib/auth.php
    58行目付近
    	global $_msg_auth;
    +	global $auth_permitted_ip;
    + 
    +	// Permitted IP address without authentication
    +	foreach($auth_permitted_ip as $address) {
    +		$pattern = preg_quote($address);
    +		if(preg_match("/^$pattern/", $_SERVER['REMOTE_ADDR'])) {
    +			return TRUE;
    +		}
    +	}
    +
    	// 認証要否判断対象
    	$target_str = '';
  • ちなみに、アドレス指定は前方一致になっているはずです。 -- teanan 2005-04-26 (火) 03:29:35
  • サブネットマスク入りのネットワーク指定(俗に言うCIDR)などを含めてキッチリ判定するコードがlib/proxy.php の via_proxy() の中に(既に)あります。どうせなら先にそれを取り出して抽象化するのが良さそうです。 -- henoheno 2005-04-26 (火) 20:44:15


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-11-14 (月) 14:14:21
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.235 sec.

OSDN