次のコードの安全性は、誰もが使用できる場合に備えて:
$file = $_FILES["file"]['tmp_name'];
$contents = file_get_contents($file);
$base64 = base64_encode($contents);
<img src="data:image/png;base64,'.$base64.'">
これがハッカーなどに対して安全でない場合に備えて、どのように保護すればよいですか?
base64 でエンコードされた文字列の Char セットは、最後のバイト フィルターとしての記号ですABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwx yz0123456789+/
。=
したがって、ファイルの内容が何であれ、base64 でエンコードされた値を入れているため、エスケープしなくても、ブラウザはimg
タグに指定された文字列を表示します。
ただし、文字列が実際に画像にエンコードされていることを確認する必要があります。
ところで、すべてのステップで新しい変数を割り当てることにより、このタスクのために多くのサーバー メモリを浪費しています。