Foros del Web » Programando para Internet » PHP »

segurida en php

Estas en el tema de segurida en php en el foro de PHP en Foros del Web. Buenos dias amigos tengo un problema de sesiones en php tengo tres archivos PHP 1 el primero es un idex,php que me solicita el usuario ...
  #1 (permalink)  
Antiguo 16/02/2008, 10:05
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
Problemas de seguridad en php

Buenos dias
amigos tengo un problema de sesiones en php

tengo tres archivos PHP

1 el primero es un idex,php que me solicita el usuario y la contaseña
2.es login.php que me hace la consulta en la bd de los usuarios, y si es correcta la informacion ingresada en el index.php lo deja pasar a otra pagina que la tercera.

3.esta tercera pagina es una pagina menu que me da acceso a otras paginas.

en fin lo que yo necesito es dentro de esa tercera pagina y las que contiene esa pagina no me deje ingresar a ningua persona si no esta logueada.

por que yo copia la direccion de la tercera pagina en el navegador y inmeditamente me deja ingresar sin seguridad
este es el codigo de la segunda 2
Código PHP:
<? session_start(); 
$txtlogin=$_REQUEST['txtlogin'];
$txtpass=$_REQUEST['txtpass'];
$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
mysql_select_db("sisbagir",$conexion) or die("Problemas en la selección de la base de datos");
$registros1=mysql_query("select login, pass from usuario where login ='$txtlogin'",$conexion) or
die(
"Problemas en el select:".mysql_error());
if (
mysql_num_rows($registros1) > 0)
{
$regs=mysql_fetch_array($registros1);
if (
$regs['pass'] == $txtpass)
{
$_SESSION["usuario"] = $txtlogin;
$_SESSION["autentificado"]= "SI"

header("Location: index12.php?$usuario='. $usuario'");
session_write_close();
}
else 

 
?>
<style type="text/css">
<!--
.Estilo5 {color: #FF0000}
.Estilo8 {color: #FF0000; font-weight: bold; }
-->
</style>
<p class="Estilo8">Contrase&ntilde;a No Valida Por Favor </p>
<p><strong><a href="index.php" class="Estilo1">Regrese</a></strong></p>
<p>
 <?
}}else{ ?><style type="text/css">
<!--
.Estilo5 {color: #FF0000}
.Estilo8 {color: #FF0000; font-weight: bold; }
-->
</style>
<p>
<p class="Estilo5"><strong>Nombre Usuario No Valido
 Por Favor </strong>
<p><span class="Estilo8"><a href="index.php" class="Estilo1">Regrese</a></span></p>
<?
 

mysql_close($conexion); 
?>
LA IDEAS ES COLOCARLE SEGURIDAD A TODAS LAS PAGINAS

Última edición por GatorV; 16/02/2008 a las 10:51
  #2 (permalink)  
Antiguo 16/02/2008, 10:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 7 meses
Puntos: 2135
Re: Problemas de seguridad en php

Tema trasladado a PHP General.

Por favor publica en los foros correctos.
  #3 (permalink)  
Antiguo 16/02/2008, 11:09
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 12 años, 7 meses
Puntos: 49
Re: Problemas de seguridad en php

Un ejemplo sencillo ya que hay muchas maneras de hacerlo, en las paginas que consideras privada verificas que las variables de sesion han sido inicializadas.

Código PHP:
session_start(); // inicias la sesion 

if(isset($_SESSION['usuario']) && $_SESSION['autentificado'] == "SI")
{
   
// muestras el contenido de la pagina
}else

    echo 
"No tienes permiso para entrar a esta pagina";
    exit();

Saludos.
  #4 (permalink)  
Antiguo 14/03/2008, 12:04
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
Re: Problemas de seguridad en php

amigo tengo este problema


me esta saliendo este error pero no se por que


Warning: Cannot modify header information - headers already sent by (output started at C:\Archivos de programa\xampp\htdocs\SICE\index12.php:9) in C:\Archivos de programa\xampp\htdocs\SICE\index12.php on line 156
  #5 (permalink)  
Antiguo 14/03/2008, 12:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
seguridad php

amigo tengo este problema


me esta saliendo este error pero no se por que


Warning: Cannot modify header information - headers already sent by (output started at C:\Archivos de programa\xampp\htdocs\SICE\index12.php:9) in C:\Archivos de programa\xampp\htdocs\SICE\index12.php on line 156
  #6 (permalink)  
Antiguo 14/03/2008, 12:34
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 10 meses
Puntos: 52
Re: Problemas de seguridad en php

cual es la linea 156

si es la del HEADER cambialo asi:


header( "Location: index12.php" );


y en index12.php

inicias la sesion y haces la comprovacion que te pone Carlojas

creo que no te haria falta mandar la variable $usuario via URL, pues ya la tienes almacenada en la variable de sesion.
  #7 (permalink)  
Antiguo 14/03/2008, 12:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 7 meses
Puntos: 2135
Re: seguridad php

Lee las FAQs: http://www.forosdelweb.com/2037876-post179.html

Saludos.
  #8 (permalink)  
Antiguo 14/03/2008, 15:01
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
segurida en php

aigo tengo un este error en una de mis paginas


ya he revisado pero no encuentro el error

Warning: Cannot modify header information - headers already sent by (output started at C:\Archivos de programa\xampp\htdocs\SICE\index12.php:9) in C:\Archivos de programa\xampp\htdocs\SICE\index12.php on line 159
  #9 (permalink)  
Antiguo 14/03/2008, 15:04
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 10 meses
Puntos: 52
Re: segurida en php

tienes espacios o alguna linea antes de la etiqueta <?php en el archivo?
  #10 (permalink)  
Antiguo 14/03/2008, 15:17
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
Re: segurida en php

amigo tu me puedes dar tu email, para enviar el archivo ya que en este editor no cabe

gracias
  #11 (permalink)  
Antiguo 14/03/2008, 15:27
Avatar de RoggerElfo  
Fecha de Ingreso: enero-2008
Ubicación: En la ciudad de los Reyes LIMA !
Mensajes: 121
Antigüedad: 12 años
Puntos: 2
Re: segurida en php

no puedes colocar codigos html antes del header
  #12 (permalink)  
Antiguo 14/03/2008, 15:28
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
Re: segurida en php

Cita:
Iniciado por congas1983 Ver Mensaje
amigo tu me puedes dar tu email, para enviar el archivo ya que en este editor no cabe

gracias
Cita:
Iniciado por jaronu Ver Mensaje
tienes espacios o alguna linea antes de la etiqueta <?php en el archivo?
amigo tu me puedes dar tu email, para enviar el archivo ya que en este editor no cabe

gracias
  #13 (permalink)  
Antiguo 14/03/2008, 15:58
 
Fecha de Ingreso: enero-2007
Mensajes: 272
Antigüedad: 13 años
Puntos: 5
Re: segurida en php

Hola:

Una alternativa es poner en el php.ini el output buffering en on.

Hasta Luego .-
  #14 (permalink)  
Antiguo 14/03/2008, 16:09
 
Fecha de Ingreso: septiembre-2007
Mensajes: 47
Antigüedad: 12 años, 4 meses
Puntos: 0
Re: segurida en php

con lo que me dijiste ya cuadre la tercera pagina

pero ahora me esta saliendo esto en la cuarta pagina

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Archivos de programa\xampp\htdocs\SICE\hoja.php:1) in C:\Archivos de programa\xampp\htdocs\SICE\hoja.php on line 1
Jesus Emilio Pulgarin Gerente General jpulgarin

este el codigo php

<?php session_start();
$cn=mysql_connect("localhost","root","")or die ("no se puede establecer la conexion");
mysql_select_db("sisbagir");
$usuario = $_SESSION["usuario"];
if(empty($usuario))
{
session_destroy();
header ("location: index.php");
exit();
}
else
{
$cons=("select * from usuario where login='$usuario'");
$resultado=mysql_query($cons);
$numfilas = mysql_num_rows($resultado);
if($numfilas > 0)
{
while ($numfilas = mysql_fetch_array($resultado))
{
echo $numfilas ["Nombre"];?> <?
echo $numfilas ["Cargo"];
}?>
<?
echo $usuario;
PRINT $HTTP_COOKIE_VARS["TestCookie"];

}
}





// Mostras lo que queres



?>
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 02:47.