https://kanamusic35.com/adsense-mistake/
↑こちらの記事の続きです。
ブログのカスタマイズをしている時に、
「Search Regexプラグインでスクリプトを検索しようとすると403エラーが出る」
という現象に出くわしたのですが、サーバーからWAFの設定をいじったら解決したので、やり方を記しておきたいと思います。
症例:Search Regexでスクリプトを検索すると・・・
今回起こった不具合は、WordpressでSearch Regexという文字置換をするためのプラグインを使って<script>という文字列が入った文を検索しようとすると
こんな画面が表示されてしまう、というものでした。
403エラーは、サーバー側でセキュリティシステムが働いた結果として表示されるもの。ということは、アクセス権限の設定やセキュリティ設定に引っかかっている事が予測できます。実際、今回はWAF(ウェブアプリケーションファイアーウォール)に引っかかっていました。
普通の「あいうえお」のようなテキストの検索では普通に動作してくれたので、要は<script>タグが入っているような文字列を入力して実行した時にWAFが「これはプログラムの改ざんや!ブロックせな!!」と認識してしまったということですね。
いや・・・管理者本人やから問題ないねんけど・・・(´・ω・`)というのもシステム側からすれば知ったこっちゃないのだ・・・
ところでそもそもWAFってなに?
先ほども書きましたが、ウェブ(Web)アプリケーション(Apprication)ファイアウォール(Firewall)の略です。
インターネットの不正アクセスを防ぐためのシステム(ファイアウォール)の中で、特にウェブアプリケーション上で動くものを指す・・・ってネットで拾った説明文なんですけど、そのまま過ぎて説明になってないような(´・ω・`)←
んーと、めちゃくちゃ簡単に例えていうなら、普通のファイアウォールが門に立ってる警備員さんだとすると、WAFは建物自体にセコムかけてます、みたいな感じです。
仮に警備員さんを突破できたとしても、もう一段奥の階層にもセキュリティが施されてるので、結局建物内に入れず悪さは出来ない、みたいなイメージですかね(・ω・)
自分はブロックしない、という除外ルールを適用してみよう
では本題のやり方。WAFの設定をいじって、ブログの管理者本人が入力したスクリプトに関してはブロックしないようにしてみました。
私はロリポップのサーバーを使っていますので、ユーザーページにログイン。
セキュリティ→WAF設定に進みます。
いくつかアドレスが出てきますので、自分のブログのドメインの「ログ参照」をクリック。
403エラーが起きた日付を指定すると、こんな風にブロックされたアクセスを見ることが出来ます。その中のこの赤枠の部分をコピーします。
ちなみにぼかしている部分には「自分のブログのドメイン/wp-admin/~」という表示が出ています。
そして今度はロリポップ!FTPにログイン。
ドメイン名のフォルダの直下に「.htaccess」というファイルがあるので、それを開いて先ほどコピーしたシグネチャの情報を追記します。書き方は、
SiteGuard_User_ExcludeSig xxx-xxx-xx(コピーした文字列)
この1行を<IfModule>タグ内のどこかに追加します。私は最後の</IfModule>の1行上に入れました。多分そこまで厳密に場所の決まりはないと思う(・ω・)
これでファイルを上書き保存すれば作業は終了。これでWordpressに戻って再度スクリプトを実行しても、エラーは返ってこないはずです。
おわりに
というわけで、「Search Regexでスクリプトを検索しようとすると403エラーが出る」の解決方法を備忘録がてらに紹介してみました。
WAFをオンにしていると、こうやってスクリプトを入力して更新しようとするとエラーが出ちゃうことがSearch Regexプラグインだけに関わらずよくあるみたいなので、同じような現象に出くわしてしまった方は一度試してみては。
ただし、あくまでセキュリティを弄っているので、実践は自己責任でお願いしますね(´ω`)
コメント
[…] 参考はこちら。私と同じロリポップを使ってる方の解説記事。詳しくは記事を見たほうが安全ですが、ざっくり書くと、 […]