Foros del Web » Programando para Internet » PHP »

ayuda con seguridad en php

Estas en el tema de ayuda con seguridad en php en el foro de PHP en Foros del Web. Hola a todos. Bueno la question que tengo entre manos es como hacer que una pagina solo sea accesible atravez de otra (aclaracion : que ...
  #1 (permalink)  
Antiguo 17/11/2009, 18:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
ayuda con seguridad en php

Hola a todos.

Bueno la question que tengo entre manos es como hacer que una pagina solo sea accesible atravez de otra (aclaracion : que no puedas simplemente copiar la url pegarla en el browser y que aparezca)

El caso es :

tengo un enlace a una pagina llamemosla : questionario.php

en esta pagina hay un formulario para rellenar

tengo otra pagina que es index.php

en la que esta el enlace para ir al questionario.php

como puedo hacer para que si o si tengas que pasar por index.php para llegar a questionario.php

lo que se me ha ocurrido como idea teorica es :

hacer una pagina intermedia que se llame confirmacion.php

en la cual se declare una variable y que automaticamente vaya a questionario.php atravez del codigo :

header ("Location: /questionario.php");

sin embargo como declaro la variable ? y luego como hago el "if"

para que atravez del if si no consta la variable ( llamemosla $codigo y demosle valor 1234 )te mande a /index.php


Ojala alguien me pueda ayudar Gracias.
  #2 (permalink)  
Antiguo 17/11/2009, 18:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ayuda con seguridad en php

Usa sesiones para validar que hayan pasado por index.php y así tienes ese control.

Saludos.
  #3 (permalink)  
Antiguo 17/11/2009, 18:53
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

Cita:
Iniciado por GatorV Ver Mensaje
Usa sesiones para validar que hayan pasado por index.php y así tienes ese control.

Saludos.


el problema es que no se hacerlo
  #4 (permalink)  
Antiguo 17/11/2009, 18:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ayuda con seguridad en php

www.php.net/session ahí te explican, adicionalmente en las FAQs del foro puedes ver mucha información.

Saludos.
  #5 (permalink)  
Antiguo 17/11/2009, 19:09
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

veamos lo que quiero hacer es bastante simple pero no se como hacerlo.

tengo esta pagina con este codigo :

<script language="JavaScript">
<!--
javascript:window.history.forward(1);
//-->
</script>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Documento sin t&iacute;tulo</title>

</head>



<body>

<form id="form1" name="form1" method="post" action="procesar.php">

<label>Dato:

<input type="text" name="name" />

</label>

<p>

<label>

<input type="submit" name="Submit" value="Enviar" />

</label>

</p>

</form>

</body>

</html>




lo que quiero hacer es que haya otra pagina que tenga una variable constante y redireccione directamente a la que esta arriba : algo asi como :


<?php

$codigo=1234

</form>


header ("Location: /allok.htm");

?>


(no se si esta bien supongo que no )


y en la primera pagina que puse poner un if que sea mas o menos asi ( no se como es la sintaxis )

if ($codigo = 1234 )

seguir en la pagina

else ir a /denegado.html

o simplemente ya que se trata de denegar la entrada el if podria ser :

if ($codigo != '1234' )

ir a la pagina /denegado.html



a ver si alguien me ayuda con la sintaxis , porque creo que para algo tan sencillo no hacen falta sesiones
  #6 (permalink)  
Antiguo 17/11/2009, 19:10
Avatar de revapax  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 39
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: ayuda con seguridad en php

en el login cuando valides guarda el user en una session

Código:
	session_start();
	$_SESSION[rut]= $row [IdUsuario];

y luego donde la necesites, pones
Código:
<?
session_start();
$tipo= $_SESSION[rut];
if ($tipo =='') {
	header ("Location: index.php");
}
?>
  #7 (permalink)  
Antiguo 17/11/2009, 19:28
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

Cita:
Iniciado por revapax Ver Mensaje
en el login cuando valides guarda el user en una session

Código:
	session_start();
	$_SESSION[rut]= $row [IdUsuario];

y luego donde la necesites, pones
Código:
<?
session_start();
$tipo= $_SESSION[rut];
if ($tipo =='') {
	header ("Location: index.php");
}
?>




la question es que no hay usuarios

simplemente es un formulario al cual no quiero que accedan directamente con poner la url , sino que solo se pueda entrar atravez de una pagina

por eso la unica manera que se me ocurre es con una variable que luego se lea y si coincide entra sino te redirije a otra pagina
  #8 (permalink)  
Antiguo 17/11/2009, 19:48
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

creo que nadie entiende lo que quiero hacer

simplemente una pagina que tenga una variable $codigo='1234'

y luego redireccione de esta forma a la otra :

header ("Location: /index.php");

y en index.php

un if del tipo :

if $codigo!='1234'
echo 'no puedes acceder'
  #9 (permalink)  
Antiguo 17/11/2009, 20:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda con seguridad en php

me parece que el que no entiende la respuesta eres tu, Foxaurus

simplemente en tu primer script defines una variable de sesión especifica, y en el script que no quieres que se accese mas que por el primero...

pues comparas la variable, justo como ya te han estado comentando...

NOTA que si no sabes hacerlo pues no esperes a que alguien lo haga por ti...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 18/11/2009, 07:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

ok entonces lo que entiendo ( siento mi ignorancia pero estoy muyyy mal en PHP ) es e po ejemplo si quiero ue de index.php a questionario.php solo sepueda psar de uno a otro y no directamnte poniendo localhost/questionario.php lo k tengo que hacer es :

en index.php poner :

session_start();
$_SESSION[rut]= $row [IdUsuario];


y en questionario.php poner que lea la variable osea :

<?
session_start();
$tipo= $_SESSION[rut];
if ($tipo =='') {
header ("Location: index.php");
}
?>




es asi ?? ome equivoco ? , si me equivoco que alguien me corija
  #11 (permalink)  
Antiguo 18/11/2009, 07:23
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

esque cuando pongo este codigo en el index me da este error:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\xamp\xampp\htdocs\confirmacion.php:2) in D:\xamp\xampp\htdocs\confirmacion.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\xamp\xampp\htdocs\confirmacion.php:2) in D:\xamp\xampp\htdocs\confirmacion.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at D:\xamp\xampp\htdocs\confirmacion.php:2) in D:\xamp\xampp\htdocs\confirmacion.php on line 8
  #12 (permalink)  
Antiguo 18/11/2009, 07:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda con seguridad en php

Cita:
Iniciado por Foxaurus Ver Mensaje
[...] es asi ?? ome equivoco ? , si me equivoco que alguien me corija
definitivamente...

estas en lo correcto, claro que debes usar las variables que desees o necesites...

por los errores, debes procurar que esos códigos sean lo primero que hay en cada script, antes de cualquier espacio, texto o HTML...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 18/11/2009, 07:45
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

bueno he intentado hacerlo pero no sale bien por lo que veo.

he puesto esto en un achivo llamado access.php

<?
session_start();
$_SESSION[access] = true;
echo "OK";
?>


en e otr archio lamado verificar.php he puesto :

<?
session_start();
if($_SESSION[access]==true) {
echo "OK, tienes el acceso permitido";
}
else {
echo "Error, no tienes permiso.";
}
?>


pero lueo cuando pongo localhost/verificar.php entra sin problemas sin pasar por access.php
y no me saca ningun mensaje

donde esta el problema ?
  #14 (permalink)  
Antiguo 18/11/2009, 07:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

vale ahora si que me muestra los mensajes bien el error era el <? tiene k ser <?php

No pense que importara O.o puede ser la version de php tal vez ?
  #15 (permalink)  
Antiguo 18/11/2009, 07:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda con seguridad en php

Cita:
Iniciado por Foxaurus Ver Mensaje
vale ahora si que me muestra los mensajes bien el error era el <? tiene k ser <?php

No pense que importara O.o puede ser la version de php tal vez ?
todo es tema de configuración... no tanto la versión de PHP

te sugiero configurar correctamente tu php.ini, lee el siguiente tema te indicara como:
http://www.forosdelweb.com/f142/form...hp-ini-589310/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 18/11/2009, 08:01
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

ahora me sale este mensaje y no lo puedo quitar


Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\xamp\xampp\htdocs\index.php:1) in D:\xamp\xampp\htdocs\index.php on line 3

el archivo tiene este codigo

<?php

session_start();
if($_SESSION[access]==true) {
echo "OK, tienes el acceso permitido";
}
else {
echo "Error, no tienes permiso.";
}

?>

<script language="JavaScript">
<!--
javascript:window.history.forward(1);
//-->
</script>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ".org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Documento sin t&iacute;tulo</title>

</head>



<body>

<form id="form1" name="form1" method="post" action="procesar.php">

<label>Dato:

<input type="text" name="name" />

</label>

<p>

<label>

<input type="submit" name="Submit" value="Enviar" />

</label>

</p>

</form>

</body>

</html>
  #17 (permalink)  
Antiguo 18/11/2009, 08:12
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

esque por lo visto no son compatibles los codigos del script de sesion y de impedir volver a la pagina anterior osea :

<?php

session_start();
if($_SESSION[access]==true) {
echo "OK, tienes el acceso permitido";
}
else {
echo "Error, no tienes permiso.";
}

?>



y esto

<script language="JavaScript">
<!--
javascript:window.history.forward(1);
//-->
</script>

no son compatibles
  #18 (permalink)  
Antiguo 18/11/2009, 09:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda con seguridad en php

Cita:
Iniciado por Foxaurus Ver Mensaje
esque por lo visto no son compatibles los codigos del script de sesion y de impedir volver a la pagina [...]
no es que sean "compatibles" o no, en primer lugar ni siquiera son el mismo lenguaje a si que no te me confundas solo...

ahora, el error que te sale es muy común... simplemente antes de usar sesión alguna no debe haber nada, ni un espacio ni HTML, nada...

los primeros 5 caracteres del archivo siempre deben ser <?php

no mas, suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #19 (permalink)  
Antiguo 18/11/2009, 09:34
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

lo que veo es que esto de las sesiones o no me sirve , o lo hago mal , porque una vez que la sesion se abre , luego siempre que copio el enlace y lo pongo me funciona no deniega la entrada


hay otro modo de hacerlo ? o algo ?
  #20 (permalink)  
Antiguo 18/11/2009, 09:36
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

hay alguna manera de que una vez que se pase por la pagina que lee la sesion tambien la cierre ?
  #21 (permalink)  
Antiguo 18/11/2009, 09:37
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: ayuda con seguridad en php

tal vez con una instruccion al final del codigo tipo :

$_SESSION[access] = false;

es posible o algo como

session_stop();
  #22 (permalink)  
Antiguo 18/11/2009, 09:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda con seguridad en php

Cita:
Iniciado por Foxaurus Ver Mensaje
lo que veo es que esto de las sesiones o no me sirve , o lo hago mal , porque una vez que la sesion se abre , luego siempre que copio el enlace y lo pongo me funciona no deniega la entrada


hay otro modo de hacerlo ? o algo ?
es por que las sesiones trascienden entre cargas de pagina... si en un lado asignas cierta variable, en otro script va a existir esa variable.. así funcionan las sesiones!!

ahora, el algoritmo lo debes implementar tu... no estoy seguro...

imagina que estableces la variable con la hora actual... y en el segundo script revisas la diferencia de hora actual, con la almacenada en sesión...

si es menor a 15 segs. pues le das acceso, si no, no...

etc, etc... puedes implementar lo que imagines, suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #23 (permalink)  
Antiguo 18/11/2009, 11:28
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 4 meses
Puntos: 12
Respuesta: ayuda con seguridad en php

Foxaurus no te preocupes, yo si te entiendo lo que quieres hacer, y no es necesario usar sesiones para hacerlo. Te voy a poner un ejemplo sencillo y rudimentario, ajustalo a tus necesidades.

En index.php define la variable al principio del archivo, la pones en un input oculto y le das el valor de la variable:

Código HTML:
<?php
 $codigo='1234'
 ?>
 
 <form id="form1" name="form1" method="post" action="questionario.php">
 <label>Dato:
 <input type="text" name="name" />
 </label>
 <p>
 <label>
<input type="hidden" name="codigo" value="<?php echo $codigo;"> 
 <input type="submit" name="Submit" value="Enviar" />
 </label>
 </p>
 </form> 
Y en la pagina questionario.php:

Código HTML:
<?php
$variable=$_POST['codigo'];
 
if ($variable = '1234') {
aqui el formulario que quieres ejecutar;
 
} elseif ($variable = '0') {
aqui la redireccion a index.php;
}
?> 
Mas o menos asi quedaria para que no te compliques con las sesiones
__________________
http://exegesis-biblica.com/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:51.