mysql - reales - inyecciones sql mas comunes
Erlang Mysql: Cómo prevenir las inyecciones de SQL (1)
Soy muy nuevo en erlang y necesito codificar algo que inserte filas en una base de datos MySQL. ¿Cómo puedo prevenir las inyecciones de SQL con Erlang? ¿Hay algo así como declaraciones preparadas en otros idiomas o cómo debería hacerlo?
Gracias por tus respuestas.
Esta respuesta depende del controlador que está usando.
Erlang ODBC tiene una función param_query que vincula un conjunto de parámetros a la consulta y también puede escapar a todos los caracteres especiales de SQL.
erlang-mysql-driver tiene declaraciones preparadas:
%% 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">>]),
Como último recurso siempre puedes escapar de los personajes
NUL (0x00) --> /0
BS (0x08) --> /b
TAB (0x09) --> /t
LF (0x0a) --> /n
CR (0x0d) --> /r
SUB (0x1a) --> /z
" (0x22) --> /"
% (0x25) --> /%
'' (0x27) --> /'
/ (0x5c) --> //
_ (0x5f) --> /_