login.inc.php

サマリPHPセッションを使った認証プラグイン(CGI版PHPでも実行可)
リビジョン0.1
対応バージョン1.4.7
投稿者pikky
投稿日2007-05-10 (木) 00:46:03

概要

注意

phpのsessionでは、cookieを使います。また、cookieが使えない場合は、URLにセッション情報が表示されます。いずれの場合も、ユーザ・パスワードが一致しなくても、認証された状態になってしまう危険性が指摘されています。このプラグインでは、とりあえずsession_regenerate_id(TRUE)を入れています。詳しくは、「PHP session 注意」などで検索下さい。

本当にみられたくない場合は、別フォルダにpukiwikiをインストールし、それぞれ.htaccessで管理する方が確実です。お互いにInterWikiで連携して

login.inc.phpは以下のような場合には便利かもしれません。

デモサイト

インストール方法

自分でファイルを更新する場合

パッチを使う場合

以下のパッチをpukiwikiのインストールディレクトリからあててください。

% patch -p1 < login-20070511.patch

使い方

例えば、

には、pukiwiki.inc.php pukiwiki.ini.phpを以下のようにする。

$auth_users = array(
	'authority' => '{x-php-md5}' . md5('hirakedoor'),
);
$read_auth = 1;
$read_auth_pages = array(
	'#secret#'	=> 'authority',
);
$edit_auth = 1;
$edit_auth_pages = array(
	'#secret#'	=> 'authority',
);

loginプラグインのおまけ

説明

ライセンス

GPLです。

経緯

さくらインターネットで、ユーザ認証を行わなければならなったものの、うまくいかず。さんざんサイトを探して、CGI版PHPではBASIC認証ができないことが判明。かなり落胆・・・。 諦めきれず、pukiwikiでセッション管理をしているサイトがあるはずだと探していたら、以下のサイトで、セッションの使い方とpluginの作り方をみる。ありがとうございました。

それで、pukiwiki1.4.7のauth.phpをみてみたら、認証している部分はbasic_authだけということに気づく。これならいけるじゃん!と改造を決意。basic_authを全部消して実装する。

やってみたらあっさり動いた。

PHPのセッションには問題があるが、「そんなに頑固なセキュリティじゃないけど、編集できないページも作れますよ」と説明できればよいぐらいの立場の人もいるに違いないと思いはじめる。また、たったこれだけの改造で動くようになった、pukiwikiとauth.phpのすばらしさに感謝して、公開することを決意。

元のauth.phpを復活させ、auth_typeで切り替えられるようにし、いくつかのサーバでインストールテスト。公開してみた。

コメント


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-21 (火) 23:42:13
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.294 sec.

SourceForge