**[[質問箱3/41]] [#jeedae4f]
#author("2018-03-11T15:13:53+09:00;2005-11-14T14:14:21+09:00","","")
**[[質問箱/3041]] [#jeedae4f]
|RIGHT:70|LEFT:410|c
|~カテゴリ||
|~サマリ|一部のページをIP(ネットワーク)からアクセス制限|
|~バージョン|1.4.5|
|~投稿者|[[nagaji]]|
|~状態|完了|
|~投稿日|&new{2005-04-26 (火) 00:30:44};|
***質問 [#gd0733db]
一部のページにネットワーク(IP)でアクセス制限(LAN内からのみアクセス可能に)したいのですが、なにか方法はありますか?

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

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

***回答 [#c6b89e93]
-そういうことは複数のPukiWikiをたててやればできるような。一つだけでやろうとするのは何か違う気がします。 --  &new{2005-04-26 (火) 00:44:51};
-[[dev:BugTrack/251]]で提案されているようですけど、あまり前向きには検討されていないようですね。実装自体はそれほど難しくないような気がしますが。 -- [[teanan]] &new{2005-04-26 (火) 02:24:47};
-こんな感じでいけてないですか? 「指定されたIPアドレスは認証の必要がない」という形で実装しています。全ページに閲覧認証&編集認証をかければ、指定されたIPアドレス以外はBasic認証画面が表示されるようになります。 -- [[teanan]] &new{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]] &new{2005-04-26 (火) 03:29:35};
-サブネットマスク入りのネットワーク指定(俗に言うCIDR)などを含めてキッチリ判定するコードがlib/proxy.php の via_proxy() の中に(既に)あります。どうせなら先にそれを取り出して抽象化するのが良さそうです。 -- [[henoheno]] &new{2005-04-26 (火) 20:44:15};
--おお、どこかにあったような気がしたんですよね (^^; -- [[teanan]] &new{2005-04-27 (水) 09:51:26};
-- [[dev:開発日記/2005-06-27]] --  &new{2005-06-28 (火) 21:15:23};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

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

OSDN