[SOLUCIONADO] Añadiendo seguridad a mi web

Iniciado por sr.mcbecker, Enero 29, 2013, 08:08:26 AM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Enero 29, 2013, 08:08:26 AM Ultima modificación: Octubre 25, 2013, 11:14:41 PM por Expermicid
Hola, os cuento, estoy haciendo mi web y quiero darle protección lo normal y no se del tema ni como empezar, estoy probando a hacerlo con POO en php os paso un trozo de código y otra cosa de acunetix sobre errores que me da a ver si me podeis ayudar un poco sobre el problema.
Código: php
class Conexion {
private $Server;
private $UserName;
private $Pass;
private $DataBase;
private $Conexion;
private $Query;
private $Iniciate;
public function Conexion(){
$Iniciate=false;
}
public function setConexion($server,$database,$username,$pass){
$this->Server=$server;
$this->DataBase=$database;
$this->UserName=$username;
$this->Pass=$pass;
$this->Conexion=mysql_connect($this->Server,$this->UserName,$this->Pass);
if(!mysql_select_db($this->DataBase,$this->Conexion)) {
echo "Error en mysql_select_db";
return false;
}
$this->Iniciate=true;
echo "Conexion aceptada";
return true;
}
public function Query($query){
if($this->Iniciate==true){
$this->Query=$query;
if(mysql_num_rows(mysql_query($this->Query,$this->Conexion))==false)echo "error en mysql_num_rows";
else {
$querytodb=mysql_query($this->Query,$this->Conexion);
if(mysql_result($querytodb,0)==false){
echo "no hay resultado";
}
else {
$result=mysql_result($querytodb,0);
return $result;
}
}
}
}
}
$myConexion = new Conexion();
$myConexion->setConexion("localhost","db","root","toor");


Bueno y ahora os paso un screen del acunetix que no tiene nada que ver con el código.
Uno de mis problemas es que no se por donde empezar para aprender seguridad web.

Tengo algo muy gordo entre manos!

Muy interesante, nunca había usado el acunetix ni visto el uso original del mismo.

se agradece.

saludos!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy interesante, nunca había usado el acunetix ni visto el uso original del mismo.

se agradece.

saludos!
no es ningún aporte busco ayuda =DDDDDD  :o
Tengo algo muy gordo entre manos!

Enero 29, 2013, 10:26:18 AM #3 Ultima modificación: Enero 29, 2013, 10:28:33 AM por alexander1712
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muy interesante, nunca había usado el acunetix ni visto el uso original del mismo.

se agradece.

saludos!
no es ningún aporte busco ayuda =DDDDDD  :o

perdon entendí cualquier cosa jajajaj

1º  lo muevo a php

2º mysql está desaconcejado usarlo en cambio puedes usar mysqli (improved)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (si te fijas en esta web OFICIAL DE PHP lo dice claramente)

3º yo no declararía las variables como private, a menos que quieras heredar la clase deberías ponerle Protected.

4º yo en lo personal aría toda la parte de setConexion directamente en el constructor de la clase:

Código: php
Public function __construct ($server,$database,$username,$pass)
{
   $this->Server=$server;
                        $this->DataBase=$database;
                        $this->UserName=$username;
                        $this->Pass=$pass;
                        $this->Conexion=mysql_connect($this->Server,$this->UserName,$this->Pass);
                        if(!mysql_select_db($this->DataBase,$this->Conexion)) {
                                echo "Error en mysql_select_db";
                                return false;
                        }
                        $this->Iniciate=true;
                        echo "Conexion aceptada";
                        return true;
}


cosa de que cuando declares la clase ya hagas la conexión:

Código: php
$myConexion = new Conexion("localhost","db","root","toor");


dos concejos más:

Podes usar una clase gestora de bases de datos que ya tenga seguridad incorporada.

y tendrías que aprender MVC además de poo que es muy útil y como utilizar gestores de plantilla.

O directamente un framework.

Volviendo al tema de seguridad, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ahí hay una charla entera sobre como poner seguridad bien, empezó siendo un aporte viejo que encontré y al estar desactualizado empezó un debate sobre las mejores formas de hacer segura una app.

por ultimo éste es un proyecto pequeño de un sistema de blogs que hice en php, podría darte un par de ideas el código, miralo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

saludos!

Enero 29, 2013, 11:11:09 AM #4 Ultima modificación: Enero 29, 2013, 11:22:42 AM por ~ Yoya ~
Desde ahora te digo que programar en POO no es un estilo de programación, que tiene clase, métodos, atributos y eso. Que utilices clases, métodos y atributos no significa que estés haciendo buen uso de este. Las personas que ingresan a este mundo por esta vía (hacking y eso), suelen tener muchos desconocimiento sobre el propósito de las cosas.

Muchos no aplican encapsulamiento, abstraccion y polimorfismo (aunque todavía no es soportado por PHP), interfaces. Tampoco nadie aplica principios como No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Y mucho menos aplican patrones de diseños.

Aprender directamente un Framework no es ningún buen consejo, eso solo te limita como programador. Tampoco aconsejar que alguien aprenda directamente MVC, no es buena practica utilizar un patron de diseño sin saber si en verdad es necesario ocuparlo, es mucho mejor conocer varios y aplicar el que mejor se adapte. Muchas veces utilizan MVC y ni saben porque lo hacen, simplemente muchos lo usan y ellos igual lo usan.

Y sobre seguridad, pues es pura logica. Para encontrar vulnerabilidad hay 2 claves, los bug's están donde esta la interacción con el usuario, osea donde el sistema recibe información del usuario para luego poder realizar una acción. Por algo dicen que es imposible penetrar una web que este 100% en HTML, porque no hay interacción con el usuario. Luego de investigar como recibe el sistema la información del usuario y luego como maneja dicha información, toca pensar como podrías generar algo que desees apartir de eso.

Te recomiendo que leas sobre: XSS, CSRF, SQLI y eso. El problema esta en que muchos solo se basan en buscar las vulnerabilidades ya conocidas, pero si te basas en la lógica siempre, podrás creas diferentes nuevos metodos, y quien sabe si luego expone un metodo nuevo totalmente nuevo.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Desde ahora te digo que programar en POO no es un estilo de programación, que tiene clase, métodos, atributos y eso. Que utilices clases, métodos y atributos no significa que estés haciendo buen uso de este. Las personas que ingresan a este mundo por esta vía (hacking y eso), suelen tener muchos desconocimiento sobre el propósito de las cosas.

Muchos no aplican encapsulamiento, abstraccion y polimorfismo (aunque todavía no es soportado por PHP), interfaces. Tampoco nadie aplica principios como No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Y mucho menos aplican patrones de diseños.

Aprender directamente un Framework no es ningún buen consejo, eso solo te limita como programador. Tampoco aconsejar que alguien aprenda directamente MVC, no es buena practica utilizar un patron de diseño sin saber si en verdad es necesario ocuparlo, es mucho mejor conocer varios y aplicar el que mejor se adapte. Muchas veces utilizan MVC y ni saben porque lo hacen, simplemente muchos lo usan y ellos igual lo usan.

Saludos.

nunca dije que directamente aprenda MVC, solo le aconcejé aprender sobre eso, y eso incluye la idea, y por que usarlo o no.

sugerí un framework porque este post estaba orientado a ponerle seguridad no a aparender.

si es verdad normalmente no se aprende sobre principios de encapsulamiento porque da la casualidad que la gente que sabe no postea absolutamente nada al respecto.

saludos!

Muchas gracias, hacía tiempo que no me aconsejaban tanto, yo se programar c++ pero tengo que profundizar en  la POO más todavía, me habían recomendado un colega que me mire PDO, lo que haré sera mirarlo todo =D, gracias.
Tengo algo muy gordo entre manos!

Enero 29, 2013, 12:55:16 PM #7 Ultima modificación: Enero 29, 2013, 01:24:56 PM por Destructor.php
Amigo te recomiendo este post para conectarte a una base de datos, lo hice para ti asique sientete importante xddd No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Amigo te recomiendo este post para conectarte a una base de datos, lo hice para ti asique sientete importante xddd No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
que grande eres =D lo miraré , gracias .!
Tengo algo muy gordo entre manos!

Graciaas xD Si tienes alguna duda me mandas un mensaje!