dudas sobre seguridad php

joacalfe
20 de Junio del 2003
Hola
Estoy realizando la web de un sitio (servidor Apache 1.3.23 y PHP 4.0.6)en el que hay una sección a la que se accede tras una autentificacion. Si por ejemplo tras introducir login y password quiero que accedan a "principal.php" me encuentro con que dicha autentificación no sirve de nada pues si escribes http://www.misitio.com/principal.php puedes entrar perfectamente.
¿Qué debo hacer para restringir el paso? ¿Tengo que hacer comprobaciones de contraseña y usuario en todos los archivos restringidos pasandolo como variables? ¿No se podría ocultar la ruta de acceso del archivo que aparece en la barra de estado y de direcciones del explorador?
Espero sus respuestas. Muchas gracias de antemano.

Gabi
20 de Junio del 2003
Lo millor que nia pa que no entren aon tu dius no es que tingues que fer comprobacions de contraseña, lo que tens que fer es posar a la entrà un negre de dos metros en una branca en la mà i voras com no entra ningú (no valen ecuatorianos).
Ye Joan, ¿com va la marxa?, acabe de vore la web peich de monta i ta quedat de puta mare (un poc catalanisà pero bé), ja dixaré algun masaje en el forum ixe, pegant canya. Be, men vaig a astudiar que demà tinc un examen dels guai. Ara ja saps aon ascriurem. Au.

Oliverio
20 de Junio del 2003
Che? una pregunta, ¿de cual fumas?
Porque si te pone asi yo quiero de la misma :D

pollanillo3
20 de Junio del 2003
Debes guardar una variable de sesion que identifique al usuario dentro de tu aplicacion web, en la pagina principal.php, y en el resto de las paginas que quieras controlar si el usuario ha echo login, debes comprobar dicha variable de sesion y actuar consecuentemente segun la evaluacion de la variable para identficar al usuario

marck
20 de Junio del 2003
mira busca informacion sobre variables ocultas es facil solo le agregas el hidden cuando las declaras, con esto pues mandas una variable oculta que puede ser el nombre y login y antes de que habras tu pagina principal pide que te verifique, que las variables que se han enviado esten en la base de datos, asi si no le mandas las claves antes de abrir la principal no te va a dejar hacer nada, hasta que le pongas la clave eso se hace con el if !isset($variable (condicion))
bye

christian
20 de Junio del 2003
este codigo lo colocas en la cabecera de todas las paginas solo se inicia una vez y siempre se
comprueba si esta iniciada la sesión.

supongo que es lo que estas buscando.
------------------------------------------
if (($PHP_AUTH_USER!="nombreusuario") ||($PHP_AUTH_PW!="password")) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo "<html>
<head>
<title>EL ACCESO FALLIDO </title>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
</head>
<body>
Aqui colocas la pagina que quieres que aparezca si
no es un usuario autorizado.
</body>
</html>";
exit;
}

Oliverio
20 de Junio del 2003
Si queres ocultar la ruta del archivo podes incluir en, digamos como ejemplo en index.php:
<?php
if(($usuario=='PEPE') and ($pass=='SECRETO')){
require_once('MiPaginaPribada.php');
exit(); // Detengo la ejecucion.
}?>
(ACA VIENE EL RESTO DEL INDEX CON UN FORM PARA ENTRAR EL USER/PASS)

Despues para protejer MiPaginaPribada.php de que entren directamente pones:
<?php
if (basename(__FILE__) == basename($HTTP_SERVER_VARS['SCRIPT_NAME'])){
exit();?>
(Y ACA EL RESTO DE LA PAGINA PRIBADA)