大きなコンテンツを含むウェブコンテンツを公開しようとすると、"ModSecurity:コード400でアクセスが拒否されました"

問題

  • u70にアップグレードした後、大きなコンテンツを含むウェブコンテンツを公開しようとすると、ログに次のようなエラーが表示されます:
ModSecurity:コード 400 でアクセス拒否

Environment

  • Liferay DXP 7.4

解決策

  • エラーはNginxに関連しています。 SecRequestBodyLimitはデフォルトで131kbに設定されている。 コンテンツを公開するには、この値を増やす必要がある。
  • この問題を解決するには、Apacheで、 SecRequestBodyNoFilesLimit を、それが必要な特定の場所だけ、次のように増やせばよい:

    <Location "/user/profile/avatar-upload.php">
        SecRequestBodyNoFilesLimit 200000
    </Location>
  • シンプルにロケーションをオーバーライドするには、Nginxコンフィギュレーションに追加します(server{} ブロック):

    location /add/submit.php {
        modsecurity_rules 'SecRequestBodyLimit 1048576';
        modsecurity_rules 'SecRequestBodyNoFilesLimit 1048576';
    }

詳しくは、以下のリンクをご覧ください。

なお、このソリューションにはアプリケーションのカスタマイズが必要です。 つまり、デベロッパー・チームは、あなたの裁量でそれを行うべきだということだ。 また、設定を変更する前に、より低い環境でテストし、データベースのバックアップを取る必要がある。 サポートや相談が必要な場合は、当社のGS(グローバルサービス)に連絡することをお勧めします。

追加情報

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています