[Tutorial] Protege Tu Aplicacion PHP

Iniciado por Dacan, 15 Noviembre 2008, 23:16 PM

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

Dacan

Bueno debido a que muchos no le dan la debida importancia a la seguridad o no saben casi nada sobre el tema les dejo aquí un tutorial para que pueden protegerse.

Bueno si tu aplicación trabaja con formularios o manejo de superglobales POST, GET debes protegerte de ataques xss o rfi.

Xss:
Debes Filtrar todas las superglobales que el usuario puede modificar con la función htmlentities() que se encarga de tratar los códigos html como texto plano, así que cuando alguien intente <b>Texto</b> lo mostrara de la misma forma y no se pondrá el texto en negritas.

Rfi:
Bueno para protegerte de un rfi no puedes incluir una variable que el usuario toque sin asesorarte de que sea el script que verdaderamente debe incluirse, para eso existen muchos sistemas de modulación.

Ahora si tu aplicación trabaja con base de datos solo tienes que filtrar todas las superglobales con la funcion mysql_real_escape_string() que se encarga de colocar barras invertidas ante estos caracteres \x00, \n, \r, \, ', " y \x1a.

Mas Información de las funciones antes mencionadas:

- http://es.php.net/mysql_real_escape_string
- http://es.php.net/htmlentities

Ejemplos:


 // Mostrando un Texto
$texto htmlentities($_POST[texto]);
echo 
$texto;


 // Actualizando una tabla
$nick mysql_real_escape_string($_POST['nick']);
$password mysql_real_escape_string($_POST['password']);
$actualizacion "UPDATE usuarios SET password = '$password' WHERE nick = '$nick'";
mysql_query($actualizacion); 
           


Bueno espero que les sirva de ayuda y si tienen alguna duda sobre seguridad o PHP en general me envían un Mensaje Privado y con gusto les ayudare.

Saludos, Dacan  :D



Tec-n0x

Mas Sencillo .. XSS Una Funcion Rapida:


<?

// Pequeña Funcion Para ' Sanar ' Variables
// Tec-n0x

function clean($var) {

$var = addslashes($var);
$var = htmlspecialchars($var, ENT_QUOTES);
           
                  return $var;

}

$str = clean($_GET['xssme']);
echo "$str";

?>


Para RFI Simplemente Utilizar Case:


<?

// Pequeño Anti-RFI
// Tec-n0x

$id = $_GET['id'];
switch($id) {

case home:
include('home.php');
break;

case test:
include('test.php');
break;

default:
include('def.php');
break;

}
?>


Podrias ampliarlo mas. como manejar sesiones / cookies correctamente etc.

Saludos


Dacan

No me gusta Htmlspeacialchars porque:

Convierte los caracteres a otra cosa, ejemplo:

<?php
$nuevo 
htmlspecialchars("<a href='test'>Test</a>"ENT_QUOTES);
echo 
$nuevo// &lt;a href='test'&gt;Test&lt;/a&gt;
?>


Saludos, Dacan  :D