Foros del Web » Programando para Internet » PHP »

Validacion acceso por url con variables

Estas en el tema de Validacion acceso por url con variables en el foro de PHP en Foros del Web. Buenos días, Primero quiero decir que estoy dando mis primeros pasos en el mundo de la programación, claro con conocimiento muy pero muy basicos. El ...
  #1 (permalink)  
Antiguo 22/03/2010, 08:29
 
Fecha de Ingreso: enero-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Validacion acceso por url con variables

Buenos días,

Primero quiero decir que estoy dando mis primeros pasos en el mundo de la programación, claro con conocimiento muy pero muy basicos.

El tema es el siguiente: en el trabajo se me esta presentando un pequeño gran problema claro yo lo veo asi por ser novel, pero es el siguiene, estoy realizando validaciones de acceso por url y hasta el momento habian sido faciles, pero ahora se me presentan unos archivos (PHP) que se les pasa variables por la url. Un mismo archivo puede presentar pantallas o información distintas dependiendo de las variables que este tomando.

Me pueden dar una luz por favor, mucho se lo sabre agradecer
  #2 (permalink)  
Antiguo 22/03/2010, 08:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Validacion acceso por url con variables

Sinceramente me perdí con la pregunta, podrias mejor presentar el código que estés usando para que te puedan dar explicar lo que puedes hacer.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 22/03/2010, 08:54
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Validacion acceso por url con variables

Creo entender algo...

Un archivo php es programado y es muy poco probable que sea estandar, por lo tanto para sacar el reporte 1 en una pagina pueden existir al menos 20 maneras de hacerlo...

Dado lo anterior, debes consultar cada uno de los reportes y/o pantallas que quieras mostrar e ir anotando sus url.

Lo del paso de parametros por URL es basicamente enviar una cadena de texto bien formada, y esto se hace de la siguiente manera:

paginaCualquiera.php?variable1=valor1&variable2=valor2&....&variableN=valorN
Algunos Ejemplos:
Código HTML:
reportes.php?etapa=3
reportes.php?estado=1&num=2
reportes.php?reporte=2&nombre=Juanito&edad=12&fecha=12-12-2009
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #4 (permalink)  
Antiguo 22/03/2010, 12:06
 
Fecha de Ingreso: enero-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Información Respuesta: Validacion acceso por url con variables

Buenas Tardes, este es un poco del codigo q se esta utilizando para validar el acceso. Me funciono con los archivos PHP simples (nombreArchivo.php), pero hay otros archivos como los q da de ejemplo Marvin y que de alguna manera se les pasan parametros distintos por la url y me muestra información distinta.

Este es un poco del codigo pero por razones de seguridad no puedo mostrar mas.


$selfpinfo = pathinfo($_SERVER['PHP_SELF']);
$url= $selfpinfo['basename'];

$user=ObtenerIdentidad();
$acceso=validar_acceso($user->dmail,$url);

Uhh....

Durante la ejecución de la función validar_acceso, me falto decir algo importante, es que comparo contra una consulta a base de datos y esta me trae la url completa (con parametros y todo) y en el php debo hacer la comparación y verificar que los parametros y el privilegio del usuario son correctos para poder dar el acceso o no. Claro este sistema esta en funcionamiento yo estoy es modificando y colaborando un poco con esta validación ya que son pasantias de la universidad.

Creo q he sido bastante explicito y sino disculpen mi poco conocimiento, en el area.

Escucho comentarios y propuestas, por favor.

Gracias....
  #5 (permalink)  
Antiguo 22/03/2010, 12:18
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Validacion acceso por url con variables

Cita:
Iniciado por bruceereu Ver Mensaje
Este es un poco del codigo pero por razones de seguridad no puedo mostrar mas.
Queéee? Q trabajas en la NASA o algo???
Nah, es broma.
Me parece q lo primero es la fortaleza del diseño de tu soft. Por como escribes acá, lo único q estás haciendo es ocultando los datos q pasas por URL, eso verdaderamente no está del TODO correcto
Deberías validar correctamente tus variables pasadas por URL
Lo primero es comprobar q vienen de donde dicen q lo hacen, eso lo logras con $_GET, en el caso de que estés utilizando un form, q tampoco especificas
En fin, que vamos hombre, q si esperas q te ayuden deberías ser más específico
saludines y esperamos por tí
  #6 (permalink)  
Antiguo 23/03/2010, 10:18
 
Fecha de Ingreso: enero-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Buenos dias, estos son los archivos con los que estoy validando los archivos php pero sin varibles por la url

<?
include_once('val_acc.php');

$selfpinfo = pathinfo($_SERVER['PHP_SELF']);
$url= $selfpinfo['basename'];

$user=ObtenerIdentidad();
$acceso=val_acceso($user->dmail,$url);
if($acceso==1):
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="70%" border="0" cellspacing="0" cellpadding="0" class="TablaDato" align="center">
<tr>
<img src="imagen.jpeg">
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td align="center">
"No esta autorizado a ingresar a este modulo."
</td>
</tr>
</table>
</body>
</html>
<?
exit();
endif;
?>



este es el archivo val_acc.php, que esta incluido en el primer archivo que mostre, en este es donde creo que tiene que ir la validacion nueva pero escucho sugerencias por favor.
<?

function val_acceso($user,$url){
$acceso=0;
$nobjeto=conexion();
$sql="SELECT curl
FROM tabla, tabla1, tabla2
WHERE tabla=tabla1
AND rol_tabla1=tabla2
AND cusuario='".$user."'
AND curl like '%".$url."%'";
$recroles=$nobjeto->Execute($sql);
if($recroles->EOF):
$acceso=1;

//insertar en log para registrar el acceso no autorizado
$sql="INSERT INTO tabla_den
VALUES (tabla_den,'INTRANET','".$url."','".$_SERVER['REMOTE_ADDR']."','".$user."',SYSDATE)";
$insertlog=$nobjeto->Execute($sql);
return $acceso;
};
?>


Buenos dias, estos son los archivos con los que estoy validando los archivos php pero sin varibles por la url

Código PHP:
Ver original
  1. include_once('val_acc.php');
  2.  
  3. $selfpinfo = pathinfo($_SERVER['PHP_SELF']);
  4. $url= $selfpinfo['basename'];
  5.    
  6. $user=ObtenerIdentidad();
  7. $acceso=val_acceso($user->dmail,$url);
  8. if($acceso==1):
  9.     ?>
  10.         <html>
  11.             <head>
  12.             <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  13.             </head>
  14.             <body>
  15.             <table width="70%"  border="0" cellspacing="0" cellpadding="0" class="TablaDato" align="center">
  16.                 <tr>
  17.                 <img src="imagen.jpeg">
  18.             </tr>
  19.                 <tr>
  20.                     <td>
  21.                     &nbsp;
  22.                     </td>
  23.                 </tr>
  24.                 <tr>
  25.                     <td align="center">
  26.                     "No esta autorizado a ingresar a este modulo."
  27.                     </td>
  28.                 </tr>
  29.             </table>
  30.             </body>
  31.         </html>
  32.     <? 
  33.     exit();
  34. endif;
  35. ?>


este es el archivo val_acc.php, que esta incluido en el primer archivo que mostre, en este es donde creo que tiene que ir la validacion nueva pero escucho sugerencias por favor.
Código PHP:
Ver original
  1. <?
  2.  
  3. function val_acceso($user,$url){
  4.     $acceso=0;
  5.     $nobjeto=conexion();
  6.     $sql="SELECT curl
  7.           FROM tabla, tabla1, tabla2
  8.          WHERE tabla=tabla1
  9.          AND rol_tabla1=tabla2
  10.          AND cusuario='".$user."'
  11.          AND curl like '%".$url."%'";
  12.     $recroles=$nobjeto->Execute($sql);
  13.     if($recroles->EOF):
  14.     $acceso=1;
  15.    
  16.     //insertar en log para registrar el acceso no autorizado
  17.         $sql="INSERT INTO tabla_den
  18.               VALUES (tabla_den,'INTRANET','".$url."','".$_SERVER['REMOTE_ADDR']."','".$user."',SYSDATE)";
  19.         $insertlog=$nobjeto->Execute($sql);
  20. return $acceso;
  21. };
  22. ?>


Cita:
Iniciado por abimaelrc Ver Mensaje
Sinceramente me perdí con la pregunta, podrias mejor presentar el código que estés usando para que te puedan dar explicar lo que puedes hacer.
Buenas tardes, envie el codigo q estoy utilizando, sera que me orientar

Última edición por GatorV; 23/03/2010 a las 14:23
  #7 (permalink)  
Antiguo 24/03/2010, 09:46
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Validacion acceso por url con variables

Ummmm, no veo muy bien lo q quieres hacer.
Pregunta: ¿Solo es un sistema de mantenimiento de usuarios, donde te preocupa la validación para entrar a la web restringida o es otra cosa?
Si la pregunta es afirmativa, sesiones.
Si no, pues explícame bien
  #8 (permalink)  
Antiguo 05/04/2010, 08:38
 
Fecha de Ingreso: enero-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Validacion acceso por url con variables

Buenos días, estoy todavía por aqui, porq se me presento otro problema, ya mi función de validar el acceso por la url funciona, pero funciona tan bien que teniendo el privilegio de entrar a la url solicitada no me deja ingresar, jajaja esta malo.

Le voy a explicar lo que hice y donde creo q es donde se me presenta el error, para ver si me pueden ayudar. La validación la manejo con dos archivos php, el primero es validar_acceso_c.php y el otro es validar_acceso_m.php.

Esta es el primer archivo (validar_acceso_c.php), hago el include del otro archivo, inicializo una serie de variables donde me valgo de $_SERVER para tomar el nombre del archivo solicitado y las variables asociadas a este archivo, luego concateno el nombre mas el signo de interrogación y las variables, le hago un preg_replace ya que este caracter "&" es reservado por oracle y me dava error al hacer la consulta en base de datos, luego obtengo el user para enviarsela a la funcion validar acceso con la url.

Código PHP:
Ver original
  1. <?
  2. include_once('val_acc_variab.php');
  3.  
  4. $selfpinfo = pathinfo($_SERVER['PHP_SELF']);
  5.  
  6. $script = $_SERVER['PHP_SELF'];
  7. $path_info = pathinfo($script);
  8.  
  9. // script.php concatenado con las variables
  10. $concat = $path_info['basename'].'?'."{$HTTP_SERVER_VARS ['QUERY_STRING']}\n";
  11.  
  12. // La función preg_replace reemplaza todos los & por vacio
  13. $url = preg_replace("[&]", "", $concat);
  14.  
  15. $user=ObtenerIdentidad();
  16. $acceso=validar_acceso($user->dmail,$url);
  17.  
  18. if($acceso=1):
  19.     ?>
  20.         <html>
  21.             <head>
  22.             <title>..:: ACCESO NO PERMITIDO  ::..</title>
  23.             <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  24.             </head>
  25.             <link href="../lib/css/cadivicss.css" rel="stylesheet" type="text/css">
  26.             <body>
  27.             <table width="70%"  border="0" cellspacing="0" cellpadding="0" class="TablaDato" align="center">
  28.                 <tr>
  29.                     <td align="center">
  30.                     <img src="imagenes/advertencia.jpeg">
  31.                     </td>
  32.             </tr>
  33.                 <tr>
  34.                     <td>
  35.                     &nbsp;
  36.                     </td>
  37.                 </tr>
  38.                 <tr>
  39.                     <td align="center">
  40.                     "USTED ESTA INTENTANDO ACCEDER A UN MODULO NO PERMITIDO PARA SU USUARIO."
  41.                     </td>
  42.                 </tr>
  43.             </table>
  44.             </body>
  45.         </html>
  46.     <? 
  47.     exit();
  48. endif;
  49. ?>



Esta es la funcion que hace la validación: como se puede ver la funcion recibe los dos parametros del otro archivo php; se puede notar que la variable acceso se encuentra inicializada en cero (0), se hace la conecion a base de datos, se realiza la consulta y se guarda el SQL resultante en la variable q se especifica. Despúes entra en un IF siempre y cuando la variable acceso cambie a uno (1) para luego hacer el registro del log y mostrar la imagen y el texto del IF del otro archivo php.
Código PHP:
Ver original
  1. Validar_acceso_m.php
  2.  
  3. <?
  4. function val_acc_variab($user,$url){
  5.     $acceso=0;
  6.     $nobjeto=conexbasdato();
  7.     $sql="SELECT url
  8.          FROM tabla, tabla1, tabla2
  9.         WHERE tabla=tabla1
  10.         AND rol_tabla1=tabla2
  11.         AND cusuario='".$user."'
  12.         AND curl like '%".$url."%'";
  13.     $recroles=$nobjeto->Execute($sql);
  14.  
  15.     if($recroles->EOF):
  16.  
  17.        $acceso=1;
  18.  
  19.     //insertar en log para registrar el acceso no autorizado
  20.  
  21.         $sql="INSERT INTO tabla_den
  22.              VALUES (tabla_den,'".$url."','".$_SERVER['REMOTE_ADDR']."','".$user."',SYSDATE)";
  23.         $insertlog=$nobjeto->Execute($sql);
  24.  
  25. return $acceso;
  26. };
  27. ?>

Ahora bien, despues de tantos echos descubri que el error esta cuando hace la lectura en este if($recroles->EOF): del segundo archivo php, cuando lee la condición y cambia la variable acceso de cero (0) a uno (1), cuando no debe porq si lee el archivo y encuantra vacio el archivo deberia cambiar y si hay registros no cambia y deja continuar con el acceso al archivo.

Pregunta, como podria arreglar esto?

Y gracias de antemano.....

Etiquetas: url, variables
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 07:11.