お問い合わせ

SWELL 不具合|ユーザープロフィール更新が403になり保存できない

  • URLをコピーしました!

SWELLを使っているサイトのユーザープロフィールを編集しようと思った時に、403エラーになってしまいました。

以前までは特に問題なく編集できていたのですが、同一サーバー内にあるSWELLを使ったサイトは一律、同じ現象になってしまいました。

同じサーバーにあるCocoonを使ったサイトではプロフィール編集は問題なく行えました。

プロフィールページの保存が403になるのは、明らかにSWELLテーマ固有の問題のようです。

403になる原因はModSecurity

私は、cPanelのサーバーを利用していますので、ModSecurityが標準でONになっています。

プロフィールページを保存する時にModSecurityがブロックして403になったようです。

この問題はよく知られており、基本的には、ModSecurityをOFFにすれば問題は無くなります。

ModSecurityが有効になっているサーバーは?

ModSecurityは、cPanelには標準で装備されています。

cPanelを使っているサーバーであれば、ModSecurityが有効になっていると思います。

ModSecurityはcPanelの機能ではないので、他のサーバーでも有効になっていることがあります。

  • mixhost
  • カラフルボックス
  • jetboy
  • ラッコサーバー
  • CORESERVER

なぜSWELLのプロフィールページはModSecurityに引っかかる?

SWELLのフォーラムに同じようにプロフィールページの保存時に403になるという投稿があります。

先日 SWELL を導入したのですが、管理画面の「ユーザー」→「プロフィール」からプロフィールを更新しようとすると、403 エラーが発生し更新できません。

標準テーマの Twenty Twenty-Three では正常に更新できるため、SWELL の独自設定が何か悪さをしていると考えられます。

なお、この件について Google 検索してみると「WAF が悪さをしている」と出てきますが、CORESERVER には WAF がないため、WAF が原因ではありません。(カスタマイザーも正常に保存できています)

wp-admin/profile.php、wp-admin/user-edit.php のパーミッションも確認しましたが、644 で問題ないかと思われます。

https://users.swell-theme.com/forum/swell-bugs/%E3%83%97%E3%83%AD%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%81%AE%E6%9B%B4%E6%96%B0%E3%81%A7403%E3%81%8C%E5%87%BA%E3%81%A6%E6%9B%B4%E6%96%B0%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84/

ModSecurityをOFFにしてこの方は問題を解決したようです。

その投稿に興味深いログがあったので引用します。

ModSecurityのルールが表示されていました。この中の何かにSWELLのプロフィールページの記述が引っかかるのでしょう。

[Fri Aug 11 00:34:38.007648 2023] [error] [client 121.80.63.31] ModSecurity: Access denied with code 403, [Rule: 'REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|!ARGS:_xfRequestUri|!ARGS:/body/|!ARGS:/content/|!ARGS:desc|!ARGS:/description/|!ARGS:/message/|!ARGS:Post|!ARGS:text|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|!ARGS:/query|!ARGS:keyword|!ARGS:/acf_fields/|!ARGS:/title|!ARGS:full_story|!ARGS:actions|!ARGS:wpTextbox1|!ARGS:detalii|!ARGS:originals|!ARGS:/data/|!ARGS:/url/|!ARGS:experience|!ARGS:/input_/|!ARGS:/textarea/|!ARGS:/wpforms\[fields\]/|!ARGS:/comment/|!ARGS:form|!ARGS:/page_sections/|!ARGS:snippet' '@rx (?i:\b(?:(?:m(?:s(?:ys(?:ac(?:cess(?:objects|storage|xml)|es)|(?:relationship|object|querie)s|modules2?)|db)|aster\.\.sysdatabases|ysql\.db)|pg_(?:catalog|toast)|information_schema|tempdb)\b|s(?:(?:ys(?:\.database_name|aux)|qlite(?:_temp)?_master)\b|chema(?:_name\b|\W*\())|d(?:atabas|b_nam)e\W*\())'] [id "77350224"] [msg "IM360 WAF: Common DB Name in Request||MVN:schema_name||MV:schema_name||T:LITESPEED||"] [severity "CRITICAL"] [severity "CRITICAL"] [tag "service_i360"] [hostname "example.com"] [uri "/wp-admin/profile.php"], referer:  https://example.com/wp-admin/profile.php 

SWELLのテーマが修正される可能性は低い

profile.phpなどの更新でModSecurityが403を返すのはテーマの問題です。おそらく記述の仕方でModSecurityのルールを避ける方法があるはずです。

しかし、SWELLの制作者はこの問題に直面していないので、WAFのOFFで対応するというのが一般的な回答になっています。

まとめ:編集時のみModSecurityをOFFにするのが正しい

ModSecurityを完全にOFFにしてしまうのは危険な運用です。プロフィールページのみに問題があるのであればその編集の時だけModSecurityをOFFにし、編集が終わったらONに戻す方がリスクは低いでしょう。

cPanelであれば、一括でModSecurityをON/OFFに切り替えられるので、それを使うのが一番ストレスが無いでしょう。

他の人にもシェアしてね
  • URLをコピーしました!
  • URLをコピーしました!
コメントを閉じる

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

クリックできる目次