前提
これまでイントラ内で運用していたWebシステムをAWS上に持っていくとこのことで挙動を見ています。
ファイルをアップロードする処理を実行した際に、AWS WAFの検知ルールに引っかかっており対応が必要な状態です。
クライアント側でファイルをアップロードする処理でのXSS対策はどの様な実装になるのかご教授頂きたいです。
■対象ルール
CrossSiteScripting_BODY
実現したいこと
ファイルのアップロードを行いたい。
該当のソースコード
js
1var xhr = new XMLHttpRequest(); 2var form = document.getElementById('uploadFile'); 3var formData = new FormData(form); 4formData.append('fileName', document.getElementById('fileName').value); 5formData.append('filePath', document.getElementById('filePath').value); 6xhr.open('POST', 'サーバー側のURL', true); 7xhr.send(formData);
試したこと
正常にアップロードできるファイルと、できないファイルがあります。
そもそもリクエストがAWS WAFによってサーバー側の処理まで届いて居ないようなので
クライアント側で何かしらする必要があると思っており
調べてみるとサニタイズが必要とのことですが、fileName, filePathのサニタイズでは解決せず。
uploadFile自体をサニタイズ?するのかいまいちよくわかってないです。
追記
WAF側のログを確認したところ、以下の問題があるとのことでした
リクエストボディに格納されているファイルのメタ情報が引っかかるようですがこの場合はどのような対応が必要となるのでしょうか。
json
1 "terminatingRuleMatchDetails": [ 2 { 3 "conditionType": "XSS", 4 "location": "BODY", 5 "matchedData": ["xmlns:x", "adobe:ns:meta/"] 6 } 7 ],

回答2件
あなたの回答
tips
プレビュー