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

Erlang Mysql:SQLインジェクションを防ぐ方法

    この答えは、使用しているドライバーによって異なります。

    Erlang ODBCには、パラメーターのセットをクエリにバインドする関数param_queryがあり、すべてのSQL特殊文字をエスケープすることもできます。

    erlang-mysql-driver ステートメントを作成しました:

    %% Register a prepared statement
    mysql:prepare(update_developer_country,
                  <<"UPDATE developer SET country=? where name like ?">>),
    
    %% Execute the prepared statement
    mysql:execute(p1, update_developer_country, [<<"Sweden">>,<<"%Wiger">>]),
    

    Yarivのブログ からのコード )

    最後の手段として、いつでも文字をエスケープする ことができます。

     NUL (0x00) --> \0 
     BS  (0x08) --> \b
     TAB (0x09) --> \t
     LF  (0x0a) --> \n
     CR  (0x0d) --> \r
     SUB (0x1a) --> \z
     "   (0x22) --> \"
     %   (0x25) --> \%
     '   (0x27) --> \'
     \   (0x5c) --> \\
     _   (0x5f) --> \_ 
    



    1. Oracleデータベースの例でのJava

    2. PL-SQLのcontains()はどのように機能しますか?

    3. LaravelEloquentクエリビルドselectminvalue

    4. Basicdatasource接続タイムアウトの問題(mysqlを使用)