ログイン試行回数制限機能の仕様と使い方

公開日:2025(令和7)年2月13日/最終更新日:

WordPress plugin Hima Art UtilityWordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

本機能は、ログインの最大試行回数を設け、同一のIPアドレスから同一のユーザー名に対して一定回数ログインに失敗すると一定時間ログイン画面を表示できないようにするという機能を提供します。

「セキュリティとスパム対策」→「ユーザーとログイン」タブから有効/無効にできます。

有効化時には以下の条件でログイン試行回数制限がかかるようにしています。

  • 同一IPから同一ユーザーへのログインに3回失敗したらロックアウト(ログイン画面の代わりにメッセージを表示)する
  • ロックアウト時間は5分
  • ロックアウト中は「ログインに失敗しました。あなたはスパマーですか?」というメッセージのみを画面に表示し続ける

条件やメッセージの変更については次項に示すコード例を使用して行ってください。

フィルターフックによる条件やメッセージの変更

以下のフィルターを使うことで試行回数、ロックアウト時間、ロックアウト時のメッセージを変更することができます。

試行回数の変更

/* 回数を変更 */
function change_max_attempts($max_attempts){
	$max_attempts = 3;//変更する回数を指定
	return $max_attempts;
}
add_filter('haup_change_max_attemps','change_max_attempts');

ロックアウト時間の変更

function change_lock_time($lock_sec){
	$lock_sec = 5;//変更する分数を指定
	return $lock_sec;
}
add_filter('aup_change_lockout_time','change_lock_time');

ロックアウト時のメッセージを変更

function change_lockout_message($message){
	$message = 'スパム行為はやめてください';//変更するメッセージを指定
	return $message;
}
add_filter('haup_change_locked_out_message','change_lockout_message');

メッセージについてはヒント的な表示(複数回ログインに失敗しました、など)は避けた方がいいと考え、「ログインに失敗しました。あなたはスパマーですか?」という簡易なメッセージにしていますので、メッセージはヒントを明示しないよう工夫をすることをおすすめします

削除対象となるデータの期間を変更

バージョン5.7以降のプログラムでは、週に一度、「最後にログイン試行があった日時から1ヶ月以上経過したレコード」を自動削除するようにしています。

この1か月の値を変更するには以下のフィルターフックを使います。

/* 削除対象とするデータの期間を変更 */
function change_retention($period) {

	//「期間の指定」に設定する値 デフォルトは1か月(1 MONTH)
	//指定例(数字と期間の間は半角1文字開けること)
	// 1日=1 DAY
	// 1週間=1 WEEK

	return '期間の指定'; // ここに指定しなおしたい期間を設定
}
add_filter('haup_cleanup_retention_period', 'change_retention');

スパム対策として保存するデータの期間を増やすことは有効化も知れませんが、その分毎回ログイン時によりたくさんのデータに対してチェックと書き換えを行うことになるため、サーバーに負荷がかかる可能性がありますから、期間変更は慎重に行うようにしてください。

【補足】本機能の仕様変更について

本機能はHima Art Utilityのバージョン5.6までは、ログインに失敗したという一時的な記録をWordPressが接続しているデータベースのoptionsテーブルに保存されるようにしていましたが、複数のサイトでテスト稼働させていたところ、ログイン画面を介しない形での機械的なログイン試行(ブルートフォースアタック)に対してoptionsテーブルの更新の妨げになるケースが発生しました。

このケースは恐らく稀にしか発生しないとは思いますが、バージョン5.7以降ではoptionsテーブルの更新不具合を起こさないようにするため、プラグイン有効化時に本機能用のテーブルを追加し、そのテーブルで記録の保存や削除を行うよう変更しました。

また、ログイン試行ログについて、従来のプログラムでは逐次(ログイン試行される度)にデータの有無の確認や追加・削除を行うようにしていましたが、5.7以降のプログラムでは週に一回テーブル内の不要なデータを削除する仕様に変更し、サーバーへの負荷が最小限になるように調整しています。

仕様変更後のバージョンへ更新した場合には、ログを保存するテーブルをデータベース内に作成するため、プラグインの再有効化が必要となります。再有効化されていない場合にはダッシュボード最上部にメッセージが表示されるようにしていますので、表示がある場合には一旦プラグインを停止し、再度有効化してください。

なお、本プラグインの使用を止めた際にテーブルが残存してゴミテーブルとして残らないようにするため、この機能のためにデータベース内に作成したテーブルは、プラグインの停止(無効化)時に削除されるようにしていますのでご安心ください。

Hima Art Utilityプラグインのその他のマニュアル

本サイトで配布しているHima Art Utilityプラグインには他にもいろいろな機能があります。

以下本機能に興味を持った方におすすめする機能に関するマニュアルです。

興味のある方はトップページのプラグインに関する概要などと併せてぜひご覧ください。

Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress plugin Hima Art UtilityWordPress Customize Ideas | Personal WP Customization Notes (PWCN)
ログイン履歴の記録機能の使い方