Autor Tema: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql  (Leído 7121 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
he colocado en mi sitio web, unos tips a la hora de crear nuestras aplicaciones web

http://www.xombra.com/go_articulo.php?nota=131

Cualquier comentario será bien recibido!  ;)
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado aasanchez

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 362
  • Puntuación: 7
  • Sexo: Masculino
    • Ver Perfil
    • Asi lo pienso, asi lo veo, asi lo escribo
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #1 : 27 de agosto de 2008, 04:02:21 pm »
la regla de oro para la seguridad es VALIDAR TODO.... no deben entrar nada sin pasar antes por algun filtro... pero las recomendaciones que das alli stan muy buenas...

Tambien es bueno recordar las expresiones regulares, es una practica que yo he adoptado ultimamente... parti de un concepto simple... la mayoria de los datos que entran a las web deben ser alfabeticos o numericos... es muy pero muy poco probable que sea alfanumerico o que requiera caracteres especiales... pero eso se filtra de otro modo y si tu web no tiene digamos que los usuarios no administradores, agregen contenido o cosas por el estilo este problema no se presenta mucho... pero bueno como la mayoria de los datos son alfabeticos o numericos pues yo uso digamos 3 capas de seguridad.. podria llamarse asi...

Capa 1: Validacion con ajax... como he dicho la mayoria de los datos se pueden validad con ajax en primera instacia, scripts para validar automaticamente hay miles en la web..

Capa 2: Validacion desde el php. Existiran casos en los que la validacion del ajax no sea suficiente, por que facilmente se puede bloquear el javascript y nuestras web quedarian totalmente expuestas...

Solo Numeros, (por lo general lo uso para validar id de items, o cosas por el estilo.
con funciones sencillas como is_numeric() o con su equivalente en expresiones regulares
Código: [Seleccionar]
function soloNumeros( $str ){
      return empty( $str ) ? false : eregi_replace("[^0-9]","",  $str  );

Uno muy similar es para validar caracteres alfabeticos:
Código: [Seleccionar]
$string = "userNaME4234432";
if (preg_match('/^[a-z]{1,30}$/i', $string)) {
    echo "example 1 successful.";
}

Si desean saber un poco mas de expresiones regulares...
http://www.carlosleopoldo.com/post/8-expresiones-regulares-para-php-muy-utiles/
http://www.phpbuilder.com/manual2/manual/es/ref.regex.php
y sobre todo www.google.co.ve (aqui consiguen todo :D)

Capa 3: Validacion en la base de datos, (si y solo si trabaj con pgsql), es la capa final y alli al igual que en php se puede validar todo lo que entra.. es nuestra capa final de seguridad.. si alguien vuela las 3 pues tiene derecho a llevarse todo... jajaja..

Bueno pero estas son medidas basicas para sistemas sencillos, existen muchas formas de asegurara nuestro sistema, siempre recordando que ningun sistema es 100% seguro si alguien lo quiere hackear lo va a hacer solo que le pondremos las cosas mas dificiles...
« Última Modificación: 27 de agosto de 2008, 04:24:16 pm por Pax »
Un usuario mas...
Todas tus preguntas, consigues respuesta en google
Googlear no cuesta nada...

http://php.org.ve/index.php/topic,104.0.html <-- Normas criollas del foro

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #2 : 15 de septiembre de 2008, 04:02:11 pm »
Aqui el enlace de un sencillo manual de técnica de Inyection para Mysql, basandose en él pueden suprimir algunos ataques, este mini tutorial fue hecho por la gente de milw0rm.com

http://www.milw0rm.com/papers/216

Lectura recomendada  8)
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado ashrey

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 471
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #3 : 15 de septiembre de 2008, 07:15:06 pm »
Javascript (llamese e incluyase ajax, livevalidation, JSON) debe usarse como manera de validación inmediata sin necesidad de que los datos lleguen al servidor, pero obligatoriamente se deben validarse los datos en el servidor, ya que como dice Pax el javascript se puede saltar muy facilmente. Otra cosa importante, pero esto mas especifico de PHP, es la directiva de configuración Magic Quote (Comillas mágicas) que ya han sido desafadas en PHP 6, están deprecated, y mucha gente confia en ella para "evitar" el SQL Inyection, creo que lo mas recomendable es desactivarla(que por cierto hace bastante lenta la ejecución del script) y agregar las comillas implicitamente haciendo uso de la función addslashes

Desconectado aasanchez

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 362
  • Puntuación: 7
  • Sexo: Masculino
    • Ver Perfil
    • Asi lo pienso, asi lo veo, asi lo escribo
Un usuario mas...
Todas tus preguntas, consigues respuesta en google
Googlear no cuesta nada...

http://php.org.ve/index.php/topic,104.0.html <-- Normas criollas del foro

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #5 : 16 de septiembre de 2008, 11:09:13 pm »
Suhosin, una aplicación  pensada para proteger los servidores de fallas  conocidos en las aplicaciones PHP y su núcleo. Suhosin viene en dos partes independientes, que pueden utilizarse por separado o en combinación.

http://www.hardened-php.net/suhosin/index.html

Claro, esto es solo si tienes control de tu servidor como administrador.
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #6 : 18 de agosto de 2009, 07:15:56 pm »
Pixy, herramienta que busca vulnerabilidades XSS and SQL Injection  en tu código

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

---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #7 : 26 de agosto de 2009, 10:49:29 am »
Otra herramienta bastante efectiva.

PHPIDS (PHP-Intrusion Detection System) is a simple to use, well structured, fast and state-of-the-art security layer for your PHP based web application.

http://php-ids.org/

---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #8 : 31 de agosto de 2009, 01:47:16 pm »
sqlmap herramienta de seguridad para bases de datos

http://sqlmap.sourceforge.net   

vale darle una mirada  8)
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #9 : 14 de septiembre de 2009, 04:43:52 pm »
Finding vulnerabilities in PHP scripts FULL ( with examples )
http://www.milw0rm.org/papers/381
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #10 : 19 de septiembre de 2009, 10:07:48 am »
El saneamiento  de datos y su validación se ha hecho más fácil con la introducción de datos de filtrado en PHP. Observen  estos filtros, cómo usarlos, y construir sus funciones de control.

Getting Clean With PHP
http://net.tutsplus.com/tutorials/php/getting-clean-with-php/

El código de descarga es un ejemplo bastante sencillo de como sanitizar los valores.
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #11 : 14 de octubre de 2009, 01:26:09 pm »
Hay algunas herramientas muy buenas para encontrar vulnerabilidades en nuestras aplicaciones web, aquñi algunos enlaces recomendados

websecurify: http://www.websecurify.com/
ratproxy - http://code.google.com/p/ratproxy/
Paros - http://www.parosproxy.org
Nikto - http://cirt.net/nikto2
Wapiti - http://sourceforge.net/projects/wapiti/
Proxmon - http://www.isecpartners.com/proxmon.html
Pantera - http://www.owasp.org/index.php/Category:OWASP_Pantera_Web_Assessment_Studio_Project
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado ashrey

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 471
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #12 : 15 de octubre de 2009, 12:54:50 am »
El uso de PDO me parece una excelente opción, la librería gestiona los datos que podrían hacer posible una inyección SQL (usa query "preparadas"), aparte de ser una buena práctica, yo que si cambias de sistema de base de datos lo único que tienes que hacer es cambiar una linea de código http://es.wikipedia.org/wiki/PHP_Data_Objects. La he estado probando y me ga gustado bastante, usando un script con MySQL y SQLite,  sin cambiar nada, solo el parámetro DNS de la clase.

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql
« Respuesta #13 : 06 de abril de 2010, 09:10:00 am »
Google lanzó una herramienta open source de nombre skipfish para realizar escaneos de vulnerabilidades en sitios web.

http://code.google.com/p/skipfish/

está escrita en C y dispone de una capacidad para procesar aproximadamente 2 mil peticiones HTTP por segundo sin elevar mucho el uso de CPU y de memoria en los servidores
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------