0

アプリケーションのイメージを MSSQL データベースに保存しようとしています。(これとファイル システム ストレージのどちらが優れているかについて議論があることは理解していますが、それは別のスレッドです。) http://forum.codecall.net/topic/40286-tutorial-storing -images-in-mysql-with-php/ですが、CodeIgniter では次のようになります。

foreach ($_FILES as $upload_name => $info) {
    if ($info['name']) {
        // Temporary file name stored on the server
        $tmpName  = $info['tmp_name'];  

        // Read the file 
        $fp      = fopen($tmpName, 'r');
        $data = fread($fp, filesize($tmpName));
        fclose($fp);

        //model code consolidated here for ease of question-asking
        $db = $this->load->database();
        $stmt = $db->insert('my_table', array('image' => $data));
    }
}

私の質問は、主にセキュリティに関するものです。基本的に、画像のバイナリ データの挿入と他の種類の文字列データのサニタイズに関して特に注意すべきことはありますか? CIのアクティブなレコードが独自にサニタイズを行うことを知っているため、上記のリンク先のサイトからコードのaddslashes()を取り出しましたが、それを使用する方が良いかどうか(または他の準備作業を行う方が良いかどうかはわかりません)。

4

1 に答える 1

2

私があなたの質問を正しく理解していれば、file_type (ファイルの Mime タイプ) を一緒に保存し、Mime タイプの前にバイナリ データを保存する限り、心配する必要はありません。次に、データを処理するときはいつでも、適切な Mime タイプでデータを使用することを確認します。これにより、ウイルスのスクリプトがアップロードされた場合でも、サーバーやブラウザーに処理させるのではなく、画像としてのみレンダリングすることができます。

これ以外は、アップロードをメモリにプルしてスクラブしてみる必要はないと思います。

于 2013-02-12T23:14:22.817 に答える