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 閲覧数:1275 views.