このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン | |
ファイル名によるインジェクション対策 [2021/06/10 09:35] – 133.11.144.10 | ファイル名によるインジェクション対策 [Unknown date] (現在) – 削除 - 外部編集 (Unknown date) 127.0.0.1 |
---|
====== サーバに送信されるファイルのファイル名に起因するインジェクション対策 ====== | |
| |
クライアント側では拡張子のチェックを、サーバ側では危険な文字列の置換を行った。 | |
| |
クライアントサイド | |
| |
var original_file_name = upload_file.name; | |
if (!(original_file_name.endsWith('fastq') || original_file_name.endsWith('fastq.gz') || original_file_name.endsWith('fq') || original_file_name.endsWith('fq.gz'))){ | |
alert("This uploaded file format is not allowed. Only '.fastq' , '.fq' , 'fastq.gz' and 'fq.gz' format is allowed."); | |
return; | |
} | |
| |
| |
サーバーサイド | |
| |
original_filename = original_filename.replace(/\$/g, "_").replace(/\;/g, "_").replace(/\|/g, "_").replace(/\&/g, "_").replace(/\'/g, "_").replace(/\(/g, "_").replace(/\)/g, "_").replace(/\</g, "_").replace(/\>/g, "_").replace(/\*/g, "_").replace(/\?/g, "_").replace(/\{/g, "_").replace(/\}/g, "_").replace(/\[/g, "_").replace(/\]/g, "_").replace(/\!/g, "_").replace(/\`/g, "_").replace(/\"/g, "_"); | |