PHP de Venezuela
11 de Marzo de 2010, 05:25:25 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
VeneHosting.com :: Tu Hosting en Venezuela
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Tips de seguridad básica al crear nuestras aplicaciones web en php/mysql  (Leído 7048 veces)
0 Usuarios y 1 Visitante están viendo este tema.
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« : 27 de Agosto de 2008, 03:51:06 »

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!  Giñar
En línea
Pax
Moderador Global
Fanático
*****

Puntuación: 1
Desconectado Desconectado

Sexo: Masculino
Mensajes: 329



Ver Perfil WWW
« Respuesta #1 : 27 de Agosto de 2008, 04:32:21 »

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:
function soloNumeros( $str ){
      return empty( $str ) ? false : eregi_replace("[^0-9]","",  $str  );

Uno muy similar es para validar caracteres alfabeticos:
Código:
$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 Cheesy)

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:54:16 por Pax » En línea

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
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« Respuesta #2 : 15 de Septiembre de 2008, 04:32:11 »

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  Cool
En línea
ashrey
Fanático
****

Puntuación: 1
Desconectado Desconectado

Sexo: Masculino
Mensajes: 315



Ver Perfil WWW
« Respuesta #3 : 15 de Septiembre de 2008, 07:45:06 »

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
En línea

Código Libre = Mundo libre;
Pax
Moderador Global
Fanático
*****

Puntuación: 1
Desconectado Desconectado

Sexo: Masculino
Mensajes: 329



Ver Perfil WWW
« Respuesta #4 : 16 de Septiembre de 2008, 01:06:24 »

Bueno para aprender mas sobre el injection sql, (con fines de aprendizaje del problema para poder solucionarlo mejor), les dejo estos enlaces...

Esta es una guia sobre todo para asp, pero explican muy bien sobre que en que consiste y variantes del injection sql...
http://www.newbie.cl/nb/wp-content/uploads/2007/08/tecnicas-de-sql-injection-un-repaso.pdf


http://www.buayacorp.com/archivos/15-herramientas-gratuitas-para-detectar-vulnerabilidades-de-inyeccion-de-sql/

http://elladodelmal.blogspot.com/2007/07/proteccin-contra-las-tcnicas-de-blind.html

http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/

http://www.dragonjar.org/video-blind-sql-injection-tecnicas-avanzadas.xhtml
En línea

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
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« Respuesta #5 : 16 de Septiembre de 2008, 11:39:13 »

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.
En línea
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« Respuesta #6 : 18 de Agosto de 2009, 07:45:56 »

Pixy, herramienta que busca vulnerabilidades XSS and SQL Injection  en tu código

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

En línea
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« Respuesta #7 : 26 de Agosto de 2009, 11:19:29 »

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/

En línea
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« Respuesta #8 : 31 de Agosto de 2009, 02:17:16 »

sqlmap herramienta de seguridad para bases de datos

http://sqlmap.sourceforge.net   

vale darle una mirada  Cool
En línea
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« Respuesta #9 : 14 de Septiembre de 2009, 05:13:52 »

Finding vulnerabilities in PHP scripts FULL ( with examples )
http://www.milw0rm.org/papers/381
En línea
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« Respuesta #10 : 19 de Septiembre de 2009, 10:37:48 »

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.
En línea
xombra
Moderador Global
Usuario Dedicado
*****

Puntuación: 2
Desconectado Desconectado

Sexo: Masculino
Mensajes: 111


Ver Perfil WWW
« Respuesta #11 : 14 de Octubre de 2009, 01:56:09 »

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
En línea
ashrey
Fanático
****

Puntuación: 1
Desconectado Desconectado

Sexo: Masculino
Mensajes: 315



Ver Perfil WWW
« Respuesta #12 : 15 de Octubre de 2009, 01:24:50 »

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.
En línea

Código Libre = Mundo libre;
PHP de Venezuela
   

 En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC XHTML 1.0 válido! CSS válido!
Página creada en 0.076 segundos con 26 consultas. (Pretty URLs adds 0.023s, 3q)