0

電話をかけるとendsWith(".pdf")、malware.pdf.exeが開きますか、それともmalware.pdfだけが開きますか?

String sFileName = request.getParameter("fName");
if (sFileName.toLowerCase().endsWith(".pdf"))
// open file
else
// don’t open the file
4

2 に答える 2

1

.endsWith("string")意図したとおりに実行されます。ただし、それはファイルが実際に pdf であることを意味するものではありません。ヘッダーを確認する方法の詳細については、この SO の質問または他の質問を確認してください。

于 2012-10-17T02:35:37.420 に答える
1

String.endsWithドキュメントどおりに動作します。ただし、ここには明らかな問題がいくつかあります。

  • NUL 文字\0は通常、OS ファイル API に関する限り、文字列を終了します (C 文字列を使用するため)。

  • 提供された場合、拡張子によってコンテンツが失われる可能性があり、別のタイプに変更される可能性があります。

  • 一般に、インターネットからダウンロードした PDF をローカル ファイル システムから実行するのは危険です。(Chrome はこれについて警告し、Billy Rios on Content Smugglingを参照してください)。

于 2012-10-17T20:00:47.950 に答える