レ点腫瘍学ノート

Top / pukiwikiカスタマイズ箇所 / 2019

search.inc.phpプラグインでGETメソッドを可能にする

search.inc.phpプラグインのformはPOSTメソッドで検索ワードが送信されます。GETメソッドはデフォルトではPukiwiki 1.4.5の頃にDoS攻撃などに弱いという理由で廃止されています(https://pukiwiki.osdn.jp/dev/?BugTrack/796)。しかし個人運営のサイトではGETメソッドを許可していたからと言ってDoS攻撃に遭うリスクは極めて低いと思われることに加えて、もし本気で攻撃の意図を持っていればPukiwikiはGETメソッドをPOSTメソッドに変えたくらいでは堅牢さは保てない。そしてPOSTメソッドの弱点は、戻るボタンで元の検索結果一覧に戻れなかったりURLをリンクとして貼ることができないことだ。

そこでこのサイトではsearch.inc.phpプラグインでGETメソッドを用いることとした。PukiwikiのBugTrack/796にあるとおり、search.inc.phpの下記の1を0に書き換える。また一番下にあるformのpostもgetに置き換える。

define('PLUGIN_SEARCH_DISABLE_GET_ACCESS', 1);

さらにこのsearch.inc.phpのformの中に下記の一文を追加してある(なくてもactionでcmd=searchに投げれば検索できそうなのに、なぜかこれがないとうまく行かない)。

<input type="hidden" name="cmd" value="search" />

検索ボックスをPOSTメソッドからGETメソッドに変更すればAMPページでも検索ボックスを設置しやすくなるが、これは行っていない。なぜかというと、AMPページでformを使用可能にするためのamp-formスクリプトを読み込ませると検索ボックスだけでなくPukiwikiの編集ページなど全ての文字入力窓を改変しないとformが作動しないから。これは大変すぎるのでamp-formは入れず、検索ボックスも検索ページだけに表示するようにしている(このページはAMPエラーが出るが、放置している)。

この記事に対するコメント

このページには、まだコメントはありません。

お名前:

更新日:2020-05-02 閲覧数:1033 views.