質問箱/3041
の編集
Top
/
質問箱
/
3041
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
Wikiを試したい方へ:
「この」Wikiは、
PukiWiki
のための公式Wikiです。
テスト書き込みなどは
お試しサイト
https://pukiwiki.osdn.jp/_trial/
をご利用ください
**[[質問箱/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
**[[質問箱/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
テキスト整形のルールを表示する