Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: tecasoft en 3 Febrero 2013, 20:39 pm



Título: como puedo proteger mis paginas webs,problema con la cache
Publicado por: tecasoft en 3 Febrero 2013, 20:39 pm
como puedo proteger mis paginas webs, como en los bancos, x ejemplo, que tiras para atras en el navegador y actualizas y no se ven los datos de cache, etc, sabeis de que hablo no?¿ las sesiones las rompo pero quedan en cache las webs que he visitado y leo todo tirando para atras y actualizar comprendeis¿? muchas gracias al que sepa esto o al que colabore xk me lleva de cabeza

entrar.php
Código:

<?php
session_start();

//unset($_SESSION['usuario1']);
//unset($_SESSION['contrasena']);

session_destroy();
//$parametros_cookies = session_get_cookie_params();
//setcookie(session_name(),0,1,$parametros_cookies["path"]);

$_SESSION['usuario1'] = "";
$_SESSION['contrasena'] = "";
//header("Cache-Control: private");


?>

<html>
<head>
<meta http-equiv='last-modified' content='0'>
<meta http-equiv='cache-Control' content='no-cache, mustrevalidate'>
<meta http-equiv='pragma' content='no-cache'>
<meta http-equiv='expires' content='0'>

</head>
<body>

<form action="login.php" method="post">
Usuario: <input type="text" name="usuario"><br>
Contraseña: <input type="password" name="contrasena"><br>
<input type="submit" value="Entrar">

</form>

</body>
</html>

login.php

Código:
<?php
session_start();

if(!isset($_SESSION['usuario1']))
{

$usuario=$_POST['usuario'];
$pass=$_POST['contrasena'];


if (strlen($usuario)<8 || strlen($usuario)>15)
{
      echo  "El usuario esta entre 8 y 15 caracteres<br>";      
      return false;
   }

if (strlen($pass)<8 || strlen($pass)>15)
{
      echo  "La contraseña esta entre 8 y 15 caracteres<br>";      
      return false;
   }

//es mejor hacer una lista blanca con caracteres permitidos que una negra, lo que no este aquí simplemente se ignora
   $validos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789-_@#";
   for ($i=0; $i<strlen($usuario); $i++){
      if (strpos($validos, substr($usuario,$i,1))===false){
         echo  " Contiene caracteres no permitidos<br>";
                                    return false;  
      }
   }

$cifrad=hash('sha512',$pass);

}
else
{
$usuario=$_SESSION['usuario1'];
$cifrad=$_SESSION['contrasena'];
}

include("conexionbd.php");

$conexion=mysqli_connect($host,$usu,$pusu) or die ("Error mysqli_connect: ". mysqli_connect_error());

mysqli_select_db($conexion,$bd) or die ("Error mysqli_select_db.");

$correcto=0;
$result=mysqli_query($conexion,"select cod_admin,usuario1,contrasena from REC_administradores where usuario1='$usuario' and contrasena='$cifrad'")  or die ("Error mysqli_query.");

if($fila1=mysqli_fetch_array($result))
{
$fila1['cod_admin'];
$_SESSION['usuario1']=$fila1['usuario1'];
$_SESSION['contrasena']=$fila1['contrasena'];
$correcto=1;


}

if($correcto==1)
{

echo "<html><head>";
echo "<meta http-equiv='last-modified' content='0'>
<meta http-equiv='cache-Control' content='no-cache, mustrevalidate'>
<meta http-equiv='pragma' content='no-cache'>
<meta http-equiv='expires' content='0'>";

echo "</head><body>";

echo "Has entrado: ". $fila1['cod_admin'] ."<br>";
echo $_SESSION['usuario1'] ."<br>";
echo $_SESSION['contrasena'];
echo "<br><a href='desconectar.php'>Desconectar</a>";

echo "</body></html>";

}

if($correcto==0)
{

echo "<html><head><meta http-equiv='last-modified' content='0'>
<meta http-equiv='cache-Control' content='no-cache, mustrevalidate'>
<meta http-equiv='pragma' content='no-cache'>
<meta http-equiv='expires' content='0'></head><body>No entras</body></html>";

//echo "No entras";

//unset($_SESSION['usuario1']);
//unset($_SESSION['contrasena']);


session_destroy();
//$parametros_cookies = session_get_cookie_params();
//setcookie(session_name(),0,1,$parametros_cookies["path"]);

$_SESSION['usuario1'] = "";
$_SESSION['contrasena'] = "";
//header("Cache-Control: private");



}

mysqli_close($conexion);
?>


desconectar.php


Código:
<?php
session_start();
//unset($_SESSION['usuario1']);
//unset($_SESSION['contrasena']);

session_destroy();
//$parametros_cookies = session_get_cookie_params();
//setcookie(session_name(),0,1,$parametros_cookies["path"]);


$_SESSION['usuario1'] = "";
$_SESSION['contrasena'] = "";
//header("Cache-Control: private");
//header("Location: entrar.php");

echo "<html><head>";
echo "<meta http-equiv='last-modified' content='0'>
<meta http-equiv='cache-Control' content='no-cache, mustrevalidate'>
<meta http-equiv='pragma' content='no-cache'>
<meta http-equiv='expires' content='0'>";
echo "</head></html>";

//header("Location: entrar.php");
?>

TABLA:

Código:
CREATE TABLE REC_administradores(
cod_admin INTEGER NOT NULL AUTO_INCREMENT,
usuario1 VARCHAR(50) NOT NULL,
contrasena VARCHAR(200) NOT NULL,
email VARCHAR(50) NOT NULL,
CONSTRAINT PKUSU PRIMARY KEY (cod_admin)
) ENGINE=InnoDB;


POR LO QUE SE PUEDE APRECIAR ROMPE LAS SESSIONES PERO LA CACHE DEL NAVEGADOR QUEDA INTACTA XK?¿


Título: Re: como puedo proteger mis paginas webs
Publicado por: tecasoft en 5 Febrero 2013, 22:23 pm
de momento he puesto esto en el Apache y he notado un cambio, no me sale la web de refrescar ME SALEN DIRECTAMENTE LOS DATOS, que me pasa con la cache?¿? e provado en chrome, FF,IE  y nada no consigo ningun resultado con la cache:

Código:
<FilesMatch "\.(php|cgi|swf)$">
Header unset Cache-Control
Header unset Expires
Header unset Last-Modified
FileETag None
Header unset Pragma
</FilesMatch>