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

MySQLユーザーパラメータのサニタイズ

    mysql_real_escape_string() mysql.comドキュメントから:

    mysql_real_escape_string() は文字セットを認識しているため、そのすべての機能を複製することは(特にマルチバイト攻撃の問題に対して)、少量の作業ではありません。

    http://cognifty.com/blog.entry/id=6/からaddlashes_dont_call_it_a_comeback.html

    AS = addslashes()  
    MRES = mysql_real_escape_string()
    ACS = addcslashes() //called with "\\\000\n\r'\"\032%_"
    
    Feature                                         AS     MRES    ACS
    escapes quote, double quote, and backslash      yes    yes     yes
    escapes LIKE modifiers: underscore, percent     no     no      yes
    escapes with single quotes instead of backslash no     yes*1   no
    character-set aware                             no     yes*2   no
    prevents multi-byte attacks                     no     yes*3   no
    
    


    1. SQLステートメントまたはストアドプロシージャから外部データベースに接続するにはどうすればよいですか?

    2. ORDERBYを使用するとクエリが遅くなる

    3. テーブルまたは列へのすべての外部キーを表示するにはどうすればよいですか?

    4. PHPおよびMySQLのオプションのWHERE条件