sql >> Base de Datos >  >> RDS >> Mysql

¿Tengo que protegerme contra la inyección de SQL si utilicé un menú desplegable?

Sí, necesitas protegerte contra esto.

Déjame mostrarte por qué, usando la consola de desarrollo de Firefox:

Si no limpia estos datos, su base de datos será destruida. (Es posible que esta no sea una instrucción SQL totalmente válida, pero espero haber entendido mi punto).

El hecho de que haya limitado las opciones disponibles en su menú desplegable no significa has limitado los datos que puedo enviar a tu servidor.

Si intentó restringir aún más este comportamiento de uso en su página, mis opciones incluyen deshabilitar ese comportamiento o simplemente escribir una solicitud HTTP personalizada en su servidor que imita el envío de este formulario de todos modos. Hay una herramienta llamada curl usado exactamente para eso, y creo el comando para enviar esta inyección SQL de todos modos se vería así:

curl --data "size=%27%29%3B%20DROP%20TABLE%20*%3B%20--"  http://www.example.com/profile/save

(Es posible que este no sea un comando curl totalmente válido, pero nuevamente, espero haber entendido mi punto).

Entonces, reiteraré:

NUNCA confíes en la entrada del usuario. SIEMPRE protégete.

No asuma que ninguna entrada del usuario es segura. Es potencialmente inseguro incluso si llega a través de algún otro medio que no sea un formulario. Nada de eso es lo suficientemente confiable como para renunciar a protegerse de la inyección SQL.