Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-08-2006
selman selman is offline
Miembro
 
Registrado: jun 2005
Posts: 26
Poder: 0
selman Va por buen camino
Como evitar dejar rastros al navegar.

Hola, desarrollé una aplicación ASPX.NET en Delphi 2005, al navegar entre páginas de la aplicación se van quedando rastros de las páginas y valores de los parámetros que paso entre páginas en el Explorador, esto va en contra de la seguridad del portal, ¿Cómo puedo evitar esto?

Gracias, Selman.
Responder Con Cita
  #2  
Antiguo 01-09-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo, la verdad, es que no entiendo muy bien qué quieres decir conque se van quedando rastros... ¿No podrías escribir por aquí un poco de código para dejar claro el "conceto"? O tal vez es que uno no es capaz de ver por dónde va el asunto...

Por ejemplo. Si a una págnia Web llega una variable vía "HTTP GET", y yo no traspaso dicha variable adrede a otra página Web... ¿cómo va a estar en esta última página la variable que pasé a la primera? No me queda claro, no lo entiendo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 01-09-2006
selman selman is offline
Miembro
 
Registrado: jun 2005
Posts: 26
Poder: 0
selman Va por buen camino
Mas detalles.

Como les comenté en el mensaje inicial, desarrollé un portal usando tecnología .NET con Delphi 2005.
Para navegar en el portal y consultar la información el usuario debe estar previamente registrado con Usuario y Contraseña. Una vez que entras y navegas por las distintas páginas del portal se van quedando en el Explorador (en su historial) las direcciones de la páginas y los parámetros que acompañaron las páginas cuando navegó. Esto hace que cualquier usuario simplemente viendo toda la dirección de páginas visitadas en el Explorador pueda entrar al portal sin necesidad de pasar por la página de identificación, perdiendo toda la seguridad y confidencialidad.

Selman.
Responder Con Cita
  #4  
Antiguo 01-09-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Es que no debería suceder que una URL contuviera los datos de entrada a tu aplicación ni ningún otro dato "confidencial". En lugar de utilizar variables "HTTP Get" deberías utilizar variables "HTTP Post" (yo hablo pensando en PHP, pero, supongo que igual da, que podemos entendernos). Estas no viajan a través de las URL y, por tanto, en ese sentido al menos están a salvo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 01-09-2006
selman selman is offline
Miembro
 
Registrado: jun 2005
Posts: 26
Poder: 0
selman Va por buen camino
No se trabajar con variables "HTTP Post"

David, la verdad es que no se trabajar con variables "HTTP Post" , si alguien me puede explicar como hacer esto en una aplicación aspx se lo agradecería para conseguir la seguridad en los datos de mi portal.

Selman.
Responder Con Cita
  #6  
Antiguo 02-09-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Aclaro antes que nada que lo mío no es ASP .NET, que, aunque he leído algos sobre ello el caso es que no me parece ni mucho menos suficiente. Bueno. Esto lo digo más que nada por aclarar que seguramente existen diferentes maneras de llevar a cabo lo que nos ocupa. Yo he buscado un poco por Internet y creo que la que propondré puede valer.

¿Cómo demonios estás enviando las variables de página en página? ¿Conformas las URLs "a mano" o utilizas formularios cuyo método sea "GET"? Si es esto último, es cuestión de cambiar de método en el formulario, y pasar a utilizar "POST". En todo caso, en algún sitio tienes que estar "recibiendo" las variables y sus correspondientes valores; pues bien, lo mismo que haces con "GET" has de hacer con "POST", como luego se verá.

Todavía el formulario no estaría completo sino contara con el valor adecuado para su atributo "action". Estamos hablando de formularios HTML comunes y corrientes. En el parámetro "action" de estos se especifica la URL de la página que habrá de recibir los datos del formulario. Esto vale tanto para el método "GET" como para el método "POST". Y es lo mismo para PHP, que para ASP .NET, por ejemplo.

Bien. Tenemos el siguiente documento de ASP .NET que albergará un formulario para realizar las pruebas con el envío de variables "HTTP POST":

Código:
<%@ Page Language="c#" Debug="true" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="pruebas_http_post.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
  <head>
    <title>ClubDelphi.com - Pruebas con variables HTTP POST</title>
  </head>
  <body>
    <form id="frmregistro" method="post" action="WebForm1.aspx">
      <fieldset>
        <legend>Datos de usuario</legend>
        <div>
         <input name="usuario-login" id="usuario-login" />
         <label for="usuario-login">Login de usuario</label>
        </div>
        <div>
         <input type="password" name="usuario-contrasena" id="usuario-contrasena" />
         <label for="contrasena-nombre">Contraseña de usuario</label>
        </div>
      </fieldset>
      <div><input type="submit" value="Enviar..." />
      </div>
    </form>
  </body>
</html>
Se ve que especificamos el método "POST" para el formulario, y como "action" especificamos la misma página, el mismo documento que contiene el formulario, que se encargará de procesar los datos como luego se verá.

Sabes que a cada página Web de ASP .NET le corresponde un "código asociado" que se ejecutará en el Servidor. Supongo que no siempre será así, pero, en este caso sí que lo es. Y este es el archivo que contiene el código (CSharp en este caso) asociado a la página Web anterior:

Código:
using System;

namespace pruebas_http_post
{
  public class WebForm1 : System.Web.UI.Page
  {
    private void Page_Load(object sender, System.EventArgs e)
    {
      if( (Request.Form["usuario-login"] != null)
        && (Request.Form["usuario-contrasena"] != null) )
      {
        Response.Write("<h3>Datos enviados</h3>");
        Response.Write("<ul>");
        Response.Write("<li>Login de usuario: "+ Request.Form["usuario-login"] +"</li>");
        Response.Write("<li>Contraseña de usuario: "+ Request.Form["usuario-contrasena"] +"</li>");
        Response.Write("</ul>");
      }
    }

    override protected void OnInit(EventArgs e)
    {
      InitializeComponent();
      base.OnInit(e);
    }

    private void InitializeComponent()
    {
      this.Load += new System.EventHandler(this.Page_Load);
    }
  }
}
Como se ve, para el ejemplo nos valemos del evento "Page_Load" conque cuenta el objeto "Page". Dentro de este evento (en el ejemplo, no creo que sea obligado hacerlo aquí), digo, es donde "buscamos" posibles variables "POST" enviadas a la página en cuestión. En realidad podría decirse que se está a la espera de ellas, que se sabe que llegarán tarde o temprano.

El asunto es igual en PHP que en ASP .NET, como vengo diciendo, y supongo que igual que en cualquier lenguaje de similares características y objetivos. Así, si en PHP accedemos a las variables "POST" a través del Array "super global" "$_POST", en ASP .NET podemos acceder a dichas variables a través de la variable "Request.Form", que es del tipo "NameValueCollection", es decir, que alberga un Array de "pares" de variables/valor.

De ahí que hagamos algo como: "Request.Form["usuario-login"]" para acceder a las variables que nos interesan. Se puede ver de dónde salen los nombres de las variables... "usuario-login" y "usuario-contrasena" se corresponden con los nombres que dimos a los correspondientes "campos" (casillas "input") en el formulario desde el que provienen los datos.

Y... no quiero enrollarme mucho más... si te queda alguna duda coméntala por aquí que no faltará quien trate de echarte una mano. Adjunto el ejemplo para que puedas "comprobarlo" tú mismo y hagas tus pruebas, cambiando alguna que otra cosa, añadiendo, quitando, en fin, como mejor te parezca.
Archivos Adjuntos
Tipo de Archivo: zip pruebas_http_post.zip (3,7 KB, 26 visitas)
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 02-09-2006 a las 11:15:32.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Navegar por una query en pagina web Hassard Internet 2 13-07-2023 02:41:34
Como Desactivar ó dejar Estatico el Cursor???? AGAG4 Varios 2 20-05-2006 16:53:26
Evitar navegar desde barra "Dirección" de MI PC Luis F. Orjuela API de Windows 1 10-02-2006 19:56:16
Como dejar Delphi maximizado????? Antuan Varios 2 01-08-2005 12:18:58
¿Cómo podemos dejar de aplicar un filtro? vhirginia Conexión con bases de datos 3 27-04-2004 17:34:24


La franja horaria es GMT +2. Ahora son las 13:30:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi