ファイル名によるインジェクション対策

サーバに送信されるファイルのファイル名に起因するインジェクション対策

クライアント側では拡張子のチェックを、サーバ側では危険な文字列の置換を行った。

クライアントサイド

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, "_");
  • ファイル名によるインジェクション対策.1623317710.txt.gz
  • 最終更新: 2021/06/10 09:35
  • by 133.11.144.10