sql >> データベース >  >> RDS >> Mysql

シリアル化された配列を格納するときのサニタイズ

    常に mysql_real_escape_stringを使用します 引用符/スラッシュが含まれる可能性のある文字列を処理する場合。そうしないと、壊れた/悪意のあるクエリが発生します。 serialize()の出力 引用符/スラッシュが付いている場合があるため、これを使用する必要があります。ただし、配列の各アイテムを事前にシリアル化する必要はありません。

    $details['name']  = $_POST['name'];
    $details['email'] = $_POST['email'];
    $details['phone'] = $_POST['phone'];
    
    $serializedDetails = mysql_real_escape_string(serialize($details));
    

    例として、「hello」をシリアル化すると、次のようになります。s:5:"hello"

    $data  = 's:5:"hello"';
    $query = 'INSERT INTO tbl (data) VALUES ("' . $data . '")';
    
    // leads to a syntax error from mysql
    // (plus it's a huge security hole)
    mysql_query($query);
    



    1. インデックスの一部ではない外部キーの列に関するAndroidRoomのコンパイル時の警告。どういう意味ですか?

    2. Docker-mysql接続の準備ができているかどうかを確認する

    3. AppEngineからCloudSQLMySQLデータベースに接続するにはどうすればよいですか?

    4. すべてのレコードで2つのテーブルを結合します