ユーザコードなどのコードや ID に、「.」や「..」のみを指定してデータを登録していた場合に、一部の画面が 404 エラーでアクセスできない場合があります。 また、「/」を含む値を指定していた場合も同様に、 一部が 404 エラーでアクセスできない場合があります。

 
【現象】
ユーザコードなどのコードや ID に、「.」や「..」のみを指定してデータを登録していた場合に、一部の画面が 404 エラーでアクセスできない場合があります。
また、「/」を含む値を指定していた場合も同様に、 一部が 404 エラーでアクセスできない場合があります。

コードや ID を例に記載していますが、具体的には以下が URL エンコードされた値が PathVariables として URL のパスに含まれる場合に、404 エラーでアクセスできません。

・ 「.」のみ
・ 「..」のみ
・ 「/」を含む値

【原因】
セキュリティ上の理由で拒否されるためです。

【対応方法】

以下のいずれかの対応を行っていただく必要があります。
一般ユーザやテナント管理者、システム管理者の方は「ユーザまたは管理者向け」の内容を、開発者の方は「開発者向け」の内容を参照してください。

    ユーザまたは管理者向け

        ・ 「/」を含んだ値や「.」のみまたは「..」のみの値を指定してデータを登録していた場合は、データを変更してください。
              例えば、ユーザコードとして「.」のみや「..」のみを指定してユーザを登録していた場合は、別の値をユーザコードとして指定してユーザを再作成することで回避できます。


    開発者向け

        以下のいずれかの対応を実施してください。

        ・ PathVariables で受け渡しするコードや ID は、「id2」でバリデーションするよう修正してください。
             https://document.intra-mart.jp/library/iap/public/development/script_programming_guide/texts/application/error_handling/jssp_validator/validators.html

        ・ PathVariables ではなく、クエリパラメータやボディで受け渡すよう修正してください。

        ・ WEB-INF/classes/META-INF/router/path_validator/ignore_list に、チェックを行わないパスを定義してください。
             ignore_list に定義したパスに前方一致した URL によるアクセスは、URL エンコードされたスラッシュやドットに関するチェックが行われません。
             例えば ignore_list に以下のように定義されていた場合は、「https://example.com/contextpath/something/process/AeCs%2Ffe」や「https://example.com/contextpath/something/entries/%2E/attr」などの URL によるアクセスで、チェックが行われません。
             ```ignore_list
             /something/process
             /something/entries
             ```

 -- 対象 -------------------------------------------------------------------------
 iAP/Accel Platform/全アップデート
 --------------------------------------------------------------------------------

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