問題
特定の人のIPアドレスをアクセス拒否にしたい
原因
お問い合わせなどで同じIPの人からスパムメールが来るなど
対処法
1 利用サーバー上ではずすコードを追加する(.htaccess)
ただし、.htaccess ファイルを編集する際にエラーが発生するとサイトにアクセスできなくなる可能性があるため、慎重に作業することが重要らしい。
apacheというプログラミング言語を使えばいいらしいです。
具体的な編集方法については下記にあったので参考まで
それぞれ自分の使っているレンタルサーバーのページが多分あるのでそこから編集方法を学びましょう。
.htaccess ファイルをバックアップしてから編集
失敗したら取り戻せないので、バックアップはとっておきましょう。
下記のようなコードを追加
(XX.XX.XX.XX の部分をブロックしたいIPアドレスに置き換える)。
<RequireAll>
Require all granted
Require not ip XX.XX.XX.XX
</RequireAll>
これで完了。
2つ以上ある場合は
<RequireAll>
Require all granted
Require not ip XX.XX.XX.XX
Require not ip YY.YY.YY.YY
Require not ip ZZ.ZZ.ZZ.ZZ
</RequireAll>
のように行を追加していく。
2 プラグインを使って国ごとBan
Wordpress上でどうしてもやりたいなら思った以上に広範囲ですが
でも、国際的にいろいろな世界の人から自分のウェブページを見てほしいならあまりお勧めできないかもしれない。
色々ありますが、下記とかが著名だと思います。
IP2Location Redirection
https://wordpress.org/plugins/ip2location-redirection/
Memo/Comment
Wordpress上のHtmlコードを修正しても意味がないようです。
それ以外にもっと簡単にスパムを防ぐルールを見出すのがいいかもしれない。(例えば、問い合わせ系なら何行以下はスパム扱いするなど
でもこれは
ChatGPT的には
ただし、この方法は完全なセキュリティ対策とはなりません。ユーザー側の制御であり、ブラウザやJavaScriptの機能を利用しているため、ユーザーがブラウザのデベロッパーツールなどを使って簡単にバイパスすることができます。真のセキュリティを求めるのであれば、サーバーサイドでのバリデーションが必要です。
ブラウザのJavaScriptでユーザーが2行以上の文章を入力しないように制限するには、フォームの送信をトリガーする前に入力されたテキストの行数をチェックすることが必要です。以下は、簡単な例です。
html
<form id="myForm">
<textarea id="message" rows="4"></textarea>
<input type="submit" value="送信">
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function(event) {
var message = document.getElementById('message').value;
var lineCount = (message.match(/\n/g) || []).length + 1; // 改行の数 + 1 で行数を取得
if (lineCount < 2) {
alert('2行以上の文章を入力してください');
event.preventDefault(); // 送信を中止
}
});
</script>
このコードでは、フォームの送信が行われる前に、テキストエリア内のテキストの行数をカウントしています。改行の数を基に行数を計算し、もし2行未満の場合は送信を中止し、アラートを表示しています。
ほかにも迷惑メール系ならRecapchaを導入すればよさそう。