問題
- Liferayはp_auth認証トークンを生成することで、CSRF攻撃から自身を保護します。 このトークンはどのように作成するのですか?
Environment
- dxp 7.0, 7.1, 7.2, 7.3
解決策
- portal-ext.properties で "auth.token.check.enabled=true" を設定すると、URLパラメータとして認証トークン(p_auth値)を生成します。 これは、 <portlet:actionURL> または <liferay-portlet:actionURL>から生成された URL のみを保護します。
- auth.token.check.enabled=true」を呼び出すと、MVCポートレットでも機能します。
- ActionのURLが <aui:form action="X">、AUIタグはp_authパラメータを抽出し、HTTPリクエストボディを通じてサーバーにPOSTされる隠しフィールドとして追加します。
-
com.liferay.portal.kernel.security.auth.AuthTokenUtil#checkCSRFToken への間接呼び出しが com.liferay.portlet.SecurityPortletContainerWrapper#checkAction から行われています。 これは、ポートレットコンテナの実装の基本です。
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン