libディレクトリ周りをじっくりと修正。動作が重くなる要因を若干排除。
lib/pukiwiki.php†
cvs:lib/pukiwiki.php (1.5-1.8)
- TrackBack、およびReferrer関係の関数を不用意に(常に)呼ばない
- 多少単純化(効果はあって1ms程度)。Japanese => English
不要ならば lib/trackbac.php をロードしないようにまで持っていきたいところ。
lib/proxy.php 関係†
cvs:lib/proxy.php (1.3-1.5)
Japanese => English
- http_request()
- charsetを付属できるように改良 (特にTrackBack v1.2が関連)
- http_request() がリダイレクトを辿る最大値のデフォルトを 10 => 2 に制限。
- via_proxy()
- ネットマスクに対する正規表現を多少厳密に修正。
- 'example.com' が 'example.com.example.org' にマッチしないように正規表現を多少厳密に修正。
- 内容が変化しないstatic変数をdefineへ退避。
trackback関係 (PukiWiki/TrackBack 0.3)†
cvs:lib/trackback.php (1.9-1.17)
- TrackBack Specification v1.2 をチェック。
- 用語の修正
- 改良済みhttp_request() により、charsetつきのpingを送信するように修正。
- http_request() がリダイレクトを辿る最大値を 10 => 2 に制限。
- クリンナップ。$script => get_script_uri(), Japanese => English 等
- BugTrack2/17: xoさんからのコメントを順次採用。
- ping URL 取得時に、trackbackとは無関係なRDFタグを捕まえない
- blog_nameに $page_title を含める
- 忘れる前に PukiWiki/TrackBack 0.2 => 0.3 に。PukiWiki 1.4.6 を出すまでにもう少し修正が入るかもしれませんが、それが正式なバージョン 0.3 だと思って下さい。
BugTrack/709: パスワードのフォーマットを選択可能に(LDAP互換)†
- pkwk_hash_compute() がFALSEを返すかどうかをチェックする
- pkwk_hash_compute() がscheme prefixの大文字小文字({md5}{MD5}{mD5}など)を正規化するかどうかを指定するオプションを追加。
- md5プラグインが内部で用いる値を正規化。
いたずら書き込みによるDoS避け†
- お試しサイトへの書き込みを受け、サーバーの負荷対策として実装。
- cvs:lib/plugin.php (1.9)
- プラグインごとに呼び出し回数を数える処理と、いずれかが一定回数(デフォルト:512回)を超えた時点で処理を停止するリミットを追加。
- 今まで: 同じプラグインを単純に山ほどコピーした文字列を貼り付けられた時、PHPがメモリ制限や秒数制限でスクリプトを強制停止させるまでのオーバーヘッド(サーバーによる:例えば15~30秒)がサーバーと読者にかかります。また、該当のページが表示されません(編集画面を手作業で呼び出したり、再編集することは可能でしょう)
- これから: 1秒程度(サーバーによる)で処理が停止します。また、あまり綺麗ではありませんが(再)編集するためのリンクを表示しようとします。