Cita:
Iniciado por info4 Hola a todos...
Estoy haciendo una aplicacion web en la cual se crea un registro, pero para seguridad se pide que no sea posible la insercion de codigo SQL en el formulario, ¿Como puedo validar e impedir que esto suceda?
Gracias por sus respuestas y su amable ayuda
si es tan solo para el sql, mysql_real_escape_string(), te debería bastar.
Ahora que para el resto
filter de php
strip_tags()
htmlspecialchars()
expresiones regulares
etc.
incluso desde el .htaccess de apache, podés hacer cosas como esta
Código Apache:
Ver originalRewriteEngine On
#Prevenir leechers, bots y otras porquerias
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(-|\.|') [OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)(<|>|%3C|%3E)(.*) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget)(.*) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)(libwww-perl|libwwwperl|snoopy|curl|wget|winhttp|python|nikto|scan|clshttp|archiver|loader|email|harvest|fetch|extract|grab|miner|suck|reaper|leach)(.*) [NC,OR]
#Prevenir inyección SQL, XSS, GET
RewriteCond %{REQUEST_URI} ^(/,|/;|/<|/>|/'|/`|/%2C|/%3C|/%3E|/%27|/////) [NC,OR]
RewriteCond %{HTTP_REFERER} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|<|>|'|%3C|%3E|%26%23|%27|%60)(.*) [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|%3C|%3E|%27|%26%23|%60)(.*) [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)('|-|<|>|,|/|\\|\.a|\.c|\.t|\.d|\.p|\.i|\.e|\.j)(.*) [NC,OR]
RewriteCond %{HTTP_COOKIE} ^(.*)(<|>|'|%3C|%3E|%27)(.*) [NC]
RewriteRule ^(.*)$ /error.shtml [NC,L]
Y si pensás en validación, olvidate de que existe javascript, asi de simple.
Saludos