レ点腫瘍学ノート

Top / 日記 / 2022年 / 12月2日

Pukiwikiのスパム対策akismet.inc.phpプラグイン

pukiwiki

f39dac16f2.png

sonotsさんが2008年頃に作られたakismet.inc.phpが、recaptcha.netの廃止などによって動作しなくなっていたので、Google recaptcha v2に対応させてみました。Google reCaptchaは現在は月間1万リクエストまでは無料で利用できます*1。数ヶ月前まで無料で利用できる上限が月間100万リクエストありましたが、大幅に縮小されました*2

プラグイン内の設定で、akismetだけ使う、またはGoogle reCaptcha v2だけ使う、あるいは両方とも使うakismetがスパムの可能性ありと判定したものだけreChaptchaの画像認証をさせる)ということが切り替えられます。

無理矢理動かしているので、色々と細かいところは動作確認できていません。v2.0.2はPHP7.4、8.0、8.1RC5でひとまず動くことを確認しています。

インストール

プラグイン本体

プラグイン本体は下記GitHubからダウンロードして、プラグインフォルダにakismet.inc.phpを設置してください。こちらから入手することも可能です。また、Pukiwiki本体のlib/pukiwiki.phpの修正が必要です。

GitHub - m0370/pukiwiki_akismet.inc.php: Pukiwiki用スパム対策プラグイン(akismet・reCaptcha)
Pukiwiki用スパム対策プラグイン(akismet・reCaptcha). Contribute to m0370/pukiwiki_akismet.inc.php development by creating an account on GitHub.
https://github.com/m0370/pukiwiki_akismet.inc.php

WordPress API Key の取得

reCAPTCHA API Key の取得

lib/pukiwiki.phpの修正

下記の場所に // Akismet Spam filtering 以下のif文を付け加えます。

if (isset($vars['cmd'])) {
        $is_cmd  = TRUE;
        $plugin = & $vars['cmd'];
} else if (isset($vars['plugin'])) {
        $plugin = & $vars['plugin'];
} else {
        $plugin = '';
}
// Akismet Spam filtering (←この部分以下を追記)
if (exist_plugin('akismet')) { // require_once
    PluginAkismet::spamfilter();
}

recaptcha.jsの読み込み

本体のスキンで下記の行を読み込んでおきます。

<script src="https://www.google.com/recaptcha/api.js" defer></script>

これで、ページ編集などのときにakismet.inc.phpプラグインの基準に達した書き込みをするとGoogle reCaptchaによる画像認証が表示されます。

追記

当初はPHP7.4まででしか動作しませんでしたが、2022.12.3に公開したv2.0.2からはPHP8(PHP8.0、PHP8.1)でも動作可能になっているはずです。

Amazon | 【Amazon.co.jp限定】ロジクール ワイヤレスマウス トラックボール 無線 M575S Bluetooth Unifying 5ボタン トラックボールマウス ワイヤレス マウス windows mac iPad 電池寿命最大24ケ月 M575 ブラック 国内正規品 | Logicool(ロジクール) | 家電&カメラ
【Amazon.co.jp限定】ロジクール ワイヤレスマウス トラックボール 無線 M575S Bluetooth Unifying 5ボタン トラックボールマウス ワイヤレス マウス windows mac iPad 電池寿命最大24ケ月 M575 ブラック 国内正規品が家電&カメラストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
https://amzn.to/3F046BR

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

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

お名前:


*1 https://cloud.google.com/recaptcha-enterprise/docs/compare-tiers
*2 https://internet.watch.impress.co.jp/docs/yajiuma/1565437.html

更新日:2022-12-02 閲覧数:518 views.