blog/2023-10-01 の変更点

PukiWikiにTurnstileを導入してみた


#author("2023-10-05T21:49:20+09:00","default:admin","admin")
#author("2023-10-05T21:50:36+09:00","default:admin","admin")
* PukiWikiにTurnstileを導入してみた [#title]

#splitbody{{
LEFT:
&tag(PukiWiki,プラグイン,Turnstile,スパム対策,解説,セキュリティ);
#split
RIGHT:&size(13){更新日: 2023-10-01 (日)};
}}


#ecache{{{

#bcontents

PukiWikiではこの頃、ボットによるスパムが目立つため、簡易的にCloudFlare Turnstileでスパム対策をしてみる。
ここではM.T.氏のTurnstileプラグインを使う。
以下のページのインストール方法に従って導入する。
#blink(https://github.com/ikamonster/pukiwiki-turnstile)

** Turnstileとは [#p1d25793]
Turnstileは、CloudFlareが開発するCaptchaの代用となる無料の認証である。
ボットと人間を区別するものであり、主にボットによるスパム対策をするために使われる。

** PukiWikiへの導入 [#s8f90cc5]
PukiWiki用Turnstileプラグインの配布ページから''turnstile.inc.php''を手に入れる。

- [[ikamonster/pukiwiki-turnstile - GitHub>https://github.com/ikamonster/pukiwiki-turnstile]]


#img(https://i.imgur.com/IsLHEwD.png,c)

上記の画像で赤く囲った場所「plugin」をクリックする。

#img(https://i.imgur.com/qqt2rA3.png,c)

「turnstile.inc.php」をクリックする。

#img(blob:https://imgur.com/58fbe741-e2dc-4e41-80a3-9c7ec93a7547,c)

&img(https://i.imgur.com/GfdwKRI.png);ダウンロードボタンをクリックする。

ダウンロードしたファイルをPukiWiki直下のpluginフォルダに入れる。

CloudFlareへログインする (アカウントを持っていないのであれば作る)
左のメニューから「''Turnstile''」を選択する。
#img(https://i.imgur.com/jEn9gdf.png,c)

&img(https://i.imgur.com/rfZAaPT.png);をクリックする。

「サイト名」、「ドメイン」の入力欄を埋めて''ウィジェット モード''(Widget Type)は、「不可視」(Invisible)を選ぶ。
#img(https://i.imgur.com/EmbyWTa.png,c)
ここで選択を間違えると動作しないので注意、間違えても設定から変更すること。


''PLUGIN_TURNSTILE_SITE_KEY''と''PLUGIN_TURNSTILE_SECRET_KEY''にそれぞれ''サイト キー''と''シークレット キー''を入れる。
#img(https://i.imgur.com/QOfAPkf.png,c)
必要に応じて別の定数も変更できる。

スキンファイルである''pukiwiki.skin.php''を編集する。(デフォルトではskin/pukiwiki.skin.php)
別のスキンを入れているのであれば基本的に「skin/〇〇/pukiwiki.skin.php」となる。
「</body>」直前に以下のコードを挿入する。
 <?php if (exist_plugin_convert('turnstile')) echo do_plugin_convert('turnstile'); // Turnstile plugin ?>
#img(https://i.imgur.com/OWzdBCM.png,c)
#gcode(php){{
  </p>
 </div>
 +<?php if (exist_plugin_convert('turnstile')) echo do_plugin_convert('turnstile'); // Turnstile plugin ?>
 </body>
 </html>
}}

次にPukiWiki直下のlibフォルダに入っているplugin.phpを編集する。
「$retvar = call_user_func('plugin_' . $name . '_action');」の前に以下のコードを挿入する。
 if (exist_plugin_action('turnstile') && ($__v = call_user_func_array('plugin_turnstile_action', array($name))['body'])) die_message($__v); // Turnstile plugin
#img(https://i.imgur.com/G52cngm.png,c)

#gcode(php){{
 	if (do_plugin_init($name) === FALSE) {
 		die_message('Plugin init failed: ' . htmlsc($name));
 	}
 
 +	if (exist_plugin_action('turnstile') && ($__v = call_user_func_array('plugin_turnstile_action', array($name))['body'])) die_message($__v); // Turnstile plugin
 	$retvar = call_user_func('plugin_' . $name . '_action');
 
 	// Insert a hidden field, supports idenrtifying text enconding
}}

これで導入は完了だ。

}}}

** コメント [#e87d1ade]

#pctrlcmt

検索

 

最新のページ

2023-11-22 2023-10-26 2023-10-08

[もっと見る]

タグ

[もっと見る]

人気のページ

カウンター

合計: 217
今日: 1
昨日: 0
オンライン: 2
  編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
This site is protected by Turnstile and the Cloudflare Privacy Policy and Terms of Service apply.