Foros del Web » Programando para Internet » PHP »

Anti-injecion mysql

Estas en el tema de Anti-injecion mysql en el foro de PHP en Foros del Web. hola que tal a todos bueno tengo una aplicacion terminada basada en php y mysql el tema es que quiero protergerla para evitar injeciones ya ...
  #1 (permalink)  
Antiguo 28/09/2009, 20:31
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Anti-injecion mysql

hola que tal a todos bueno tengo una aplicacion terminada basada en php y mysql el tema es que quiero protergerla para evitar injeciones ya que la he scaneado y tiene algun que otro boquete

pero bueno luego de leer re leer miles de cosas por la red llegue a la conclusion que la mayoria no tiene ni idea de como evitar y que muchos blog y demas pagina simplemente han hecho copy y paste, del wikipedia (hasta copiaron los mismos errores).....

bueno yo necesito que alguien me ayude con esto he implementado la siguiente sentencia :


Cita:
$sql_mostrar=sprintf("select * from articuletos where arti_id='%s'",stripslashes(mysql_real_escape_strin g($arti_id)));

funciona al menos la pagina muestra los contenidos pero no se si no sera demasiado exagerado o si esta bien aplicado.....

ademas por lo que he leido que el "magic quotes"
ESTA FUNCION DEJARÁ DE ESTAR POR DEFECTO A "ON" EN PHP 6. ESTE VALOR POR DEFECTO ESTÁ "DEPRECATED"; NI LOS MISMOS AUTORES DEL PHP LO RECOMIENDAN.

http://de.php.net/magic_quotes

alguna sugerencia cualquier cable me servira.... saludos!!
  #2 (permalink)  
Antiguo 28/09/2009, 21:18
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Anti-injecion mysql ayudaaaaa!!!

Mira este articulo que encontre

http://www.maestrosdelweb.com/editorial/inyecsql/
  #3 (permalink)  
Antiguo 28/09/2009, 21:32
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Anti-injecion mysql

me dieron nausias

me has enviado a un articulo ASP amigo....

gracias de todos modos !!
  #4 (permalink)  
Antiguo 29/09/2009, 16:14
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Anti-injecion mysql

En esa misma pagina del manual de PHP explican que lo mejor es usar una funcion adecuada a tu BBDD para escapar variables, por ejemplo, para mysql debes usar mysql_real_escape_string(), pero eso te soluciona solo la parte del SQL injection, falta lo del XSS injection que, de momento, podrias solucionar con:

str_ireplace('<script', '&lt;script', $cadena);
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 29/09/2009, 20:00
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Anti-injecion mysql

o bien, htmlentities() y despues la funcion contraria a esta, que no me acuerdo cual es...pero es cuestion de buscarla nomas.
  #6 (permalink)  
Antiguo 29/09/2009, 21:57
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Anti-injecion mysql

que diferncia hay entre usar -->stripslashes o --> addcslashes

porque francamente ya tengo los ojos morados leer y cada vez estoy mas confundido, me estoy volviendo paranoico.....

por otra parte creo que la mejor forma seria usar el htaccess e incluir estas lineas:
Código PHP:
##
Seguridad extra para PHP
php_flag safe_mode on
php_flag expose_php off
php_flag display_errors off
## Manejo de errores de Apache. Cuando se produzca uno de estos
erroresredirigimos a una pagina especial desarrollada por nosotros.
ErrorDocument 401 /error401.html
ErrorDocument 403 
/error403.html
ErrorDocument 404 
/error404.html RewriteEngine On Options
+FollowSymLinks
# Evitar escaneos y cualquier intento de manipulación malintencionada
# de la URL. Con esta regla es imposible lanzar ataques de inyección
(SQLXSSetc)
RewriteCond &#37;{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] 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.php [NC]
## No permitir acceso al .htaccess
order allow,deny
deny from all ## Evitar que se liste el contenido de los directorios
Options All -Indexes ## Lo mismo que lo anterior
IndexIgnore * ## Denegar el acceso a robots dañinos, browsers offline,
etc
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
RewriteCond %{HTTP_USER_AGENT} ^attach [OR]
RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
##redireccionar a los robots a otra web
RewriteRule ^.*$ http://www.otraweb.com [R,L] # Protegerse contra los
ataques DOS limitando el tamaño de subida de archivos
LimitRequestBody 10240000 
colocando la parte de codigo que se necesita ¿que opinan?

tambien por todo lo que he leido he llegado a la conclusion que la validacion en javascript solo sirve para usuarios normales (sin intensiones malas) y que si agrego un validador en php para verificar los datos en el servidor es la solucion mas segura .... Pero he mirado muchos codigo que de muchos usarios que muestran como deterner caracteres especiales como * < etc etc ect....

pero la pregunta que me surge es ¿que pasa si un usario mal intesionado intentara convertir los caracteres considerados peligrosos como '<' y '>' a su
equivalente hexadecimal '&3C' y '%3E' respectivamente ?????

he analizado algunas clases como zend y cake y hecho las pruebas en mi red y usando un poco de logica me salteo tranquilamente la validacion de los formularios

Por ultimo alguien conoce alguna buena herramienta para scanear vulneralidades en aplicaciones,
por que he probado acunetix y no me sirve, encontre una interesante pero no tengo la menor idea de como se instala, o como se usa, pero tiene en su pagina una aplicacion basada en web y verdaderamete sirve pues encuentra errores y vulneralidades
la web de la aplicacion es :

http://pixybox.seclab.tuwien.ac.at/pixy/index.php

estoy pensando instalar algunas herramientas que usan los spamer y hac3er, para scanear mi aplicacion ...creo que si uso una de esas voy a encontrar seguro algun hueco..... el tema es que, si instalo alguna de esas, tal vez haga que mi red se infecte y pase segurametne a formar parte de alguna red sombi o en el mejor de los casos rompa todo y tenga que formatear mi rigido....

Por lo visto la profesion de spamer deja buen dinero y va en aumento, ademas las diferentes "malas" profesiones, como dueños y alquladores deredes sombi e intaladores de troyanos, estan sumando cada dia mas adeptos... por las ganancias que estas cosas dejan...

por lo que he leido la mayor parte de estas cosas provienen de rusia, dicen que es el pais por exelencia en este tipo de practicas... e incluso hay paginas que pagan a los uarios por maquina infectadas o por portales infectados e injectados!!! y lei que las ganacias promedio de un spamer medio es de 200mil dolares anuales (joder!!! ahora entiendo todo!!!)
y parece ser que la red que mas infecta a las pc es facebook ....

bueno creo que esto es mundo nuevo :

saludos a prepararse y a protegerse que, la soga viene con bosta !!! y hay que agarrarla con los dientes joder !!!

Última edición por zerpico_01; 29/09/2009 a las 22:22
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:36.