tu como proteges tus aplicaciones php??

Iniciado por Atalus, 30 Junio 2009, 20:11 PM

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


& eDu &

Evitar XSS
Digamos que busqueda contiene la busqueda realizada
Código (php) [Seleccionar]
<? $busqueda=str_replace("'","······",$busqueda);
$busqueda=htmlentities($busqueda);
echo "Resultados de $busqueda"; ?>

дٳŦ٭

Sí, sí estaba mal XD pero ahí tiene la versión que funciona  :silbar:


Con sangre andaluza :)


^Cloud^

Si te refieres a que el código estaba mal... es cierto. Tenía la intención de probar si era más eficiente el uso de expresiones regulares que addslashes... se acabo mi tiempo de ocio en el trabajo xD.

Lo edite para quitar el callback a la función que escapaba las comillas.

Un saludo,
Ahora resulta que imagino mi pasado
y llevo en esta clínica cuarenta años.
Nunca jamás he pisado la calle
y el electroshock ha sido mi padre

MazarD

 Para xss y sqlinjections:
Código (php) [Seleccionar]

function sana($cadena)
{
if (!is_numeric($cadena))
{
return htmlentities($cadena,ENT_QUOTES);
} else {
return $cadena;
}
}


Y tokens por todos sitios para xsrf
Código (php) [Seleccionar]
function genToken()
{
$charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$length = mt_rand (10, 15);
for ($i=0; $i<$length; $i++) $key .= $charset[(mt_rand(0,(strlen($charset)-1)))];
return $key;
}


Saludos.

-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
http://twitter.com/MazarD
irc://irc.freenode.org/elhacker.net

Pazador

[quote author=nsigned link=topic=259745.msg1262179#msg1262179 date=1246386595]
Funcion anti Inyecciones SQL incluida en SMF, publicada por дٳŦ*

Código (php) [Seleccionar]

<?php
function addslashes__recursive($var){
if (!
is_array($var))
return 
addslashes($var);
$new_var = array();
foreach (
$var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v);
return 
$new_var;
}
$_POST=addslashes__recursive($_POST);
$_GET=addslashes__recursive($_GET);
$_REQUEST=addslashes__recursive($_REQUEST);
$_SERVER=addslashes__recursive($_SERVER);
$_COOKIE=addslashes__recursive($_COOKIE);
?>



Saludos  ;)
[/quote]

Estoy aprendiendo PHP y note que esa funcion solo filtra los dos tipos de comillas unicamente en comparacion de mysql_real_escape_string que filtra: \x00, \n, \r, \, ', " y \x1a y evita una inyeccion: Lei esto

Yo por lo general uso esta funcion que encontre en la red (para mi la mejor :laugh:)
Código (php) [Seleccionar]
<?php
// Aplicar comillas sobre la variable para hacerla segura
function comillas_inteligentes($valor)
{
   
// Retirar las barras
  
if(get_magic_quotes_gpc()){
       
$valor stripslashes($valor);
   }

   
// Colocar comillas si no es entero
   
if (!is_numeric($valor)) {
       
$valor "'" mysql_real_escape_string($valor) . "'";
   }
   return 
$valor;
}

// Conexion
$enlace mysql_connect('mysql_host''mysql_usuario''mysql_contrasenya')
   OR die(
mysql_error());

// Realizar una consulta segura
$consulta sprintf("SELECT * FROM usuarios WHERE usuario=%s AND password=%s",
           
comillas_inteligentes($_POST['username']),
           
comillas_inteligentes($_POST['password']));

mysql_query($consulta);
?>

pero antes filtro los datos con htmlentities  :P


PD: es curioso y/o algo raro que un espacio " " juegue un papel importante aqui porque luego de escribir:


e intente previsualizar el post me muestre:


pero cuando escribo:

recien previsualiza el post  :silbar:
La vida es un juego
Mario Bross