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

誰かが私のデータベースをハッキングしました-どうやって?

    mysql_real_escape_string

    ここで説明するように: mysql_real_escape_string()はSQLインジェクションから完全に保護しますか?

    コードスニペットに基づいて、データベースを2回接続しました。

    $db_con=mysql_connect($db_host,$username,$password);    
    
    $connection_string=mysql_select_db($db_name);
    mysql_connect($db_host,$username,$password);    
    mysql_set_charset('utf8',$db_con); 
    

    また、:

    のデータベースリンク識別子を指定していません
    $email= mysql_real_escape_string($_POST['email']);
    $name= mysql_real_escape_string($_POST['name']);
    $sex= mysql_real_escape_string($_POST['sex']); 
    

    したがって、mysql_set_charsetは、提供された実際のエスケープ$_POSTには影響しません。 マルチバイト文字の場合。

    提案

    • 2番目のmysql_connect($db_host,$username,$password);を削除します
    • 明示的に$db_conを追加します mysql_real_escape_stringを実行する場合


    1. SQL Serverの分離レベル:一連​​の

    2. Androidのバックアップ後にSqliteデータベースを復元する方法

    3. JDBCとSpringの操作

    4. MySQL階層再帰クエリを作成するにはどうすればよいですか?