tutorial script que puede paginas hacer ejemplos definicion con codigo javascript php

javascript - que - Script de inicio de sesión con botones ocultos



paginas con javascript (6)

En cuanto a la seguridad, no puedes confiar en lo que proviene del cliente :

  • El visitante puede ver todo tu código (HTML y Javascript, no PHP) y probar cosas
  • El visitante puede incluso no usar un navegador; es trivialmente fácil enviar una solicitud con una secuencia de comandos

Esto significa que ocultar los botones es un buen diseño de interfaz de usuario (porque no puede usarlos si no está conectado). Pero no es una característica de seguridad. La característica de seguridad es verificar, en el servidor, que el visitante está conectado antes de cada acción que lo requiere.

Si no tiene la intención de mostrar los botones, no es útil enviar el HTML y las imágenes al navegador y luego ocultarlos con Javascript. Verificaría con PHP.

He estado usando PHP y JavaScript para construir el sitio web de mi padre. Él quiere incorporar un sistema de inicio de sesión en su sitio web, y yo tengo el diseño para el sistema que usa PHP. Mi problema es cómo mostrar los botones si la persona está conectada?

Por ejemplo: tiene Inicio , Productos , Acerca de nosotros y Contacto . Quiero tener botones para distribuidor , distribuidor y tal vez otra información si el usuario está conectado. Así que tendré Inicio , Productos , Acerca de nosotros , Contactos , Distribuidor (si el distribuidor inicia sesión), Distribuidor (si el distribuidor inicia sesión), y así adelante.

¿Sería JavaScript una buena manera de hacer esto o PHP, o tal vez ambos? Usar JavaScript para mostrar y ocultar botones, y PHP para verificar para ver qué botones mostrar.


Si usa javascript para ocultar los botones, abre un agujero de seguridad en la aplicación. Un usuario malintencionado podría desactivar javascript o aplicar algunos propios para evitar su seguridad.

Sugiero usar PHP para elegir o bien renderizar los botones o no. Hago esto en .NET con bastante frecuencia.

Debería poder verificar el acceso del usuario en el lado del servidor siempre que intenten usar un botón restringido también.


Lo que hemos hecho en mi trabajo es tener una biblioteca que proporcione funciones tales como verificar si el usuario está conectado. Por ejemplo:

<?php require_once ''Auth.php''; // output some html if (isLoggedIn()) { echo ''html for logged in user''; } // rest of html

Para las páginas que solo los usuarios autenticados deberían ver, el controlador comprueba si están conectados y si no los redirige a la página de inicio de sesión.

<?php public function viewCustomer($customerId) { if (!isLoggedIn()) redirectToLoginPage(); }


Básicamente, donde tienes tu menú en html, di como una lista <ul> <li>Home</li> </ul> agregas php después de </li> del último elemento:

<?php if($session-logged_in) { ?> <li>My Account</li> <?php } ?>


En su archivo de menú o w / e usted pone:

<? require ''auth.php'' ?> <ul> <li><a href="">Home</a></li> <li><a href="">Products</a></li> <? if( loggedin() ): ?><li><a href="">Secret area</a></li><? endif; ?> </ul>

Luego, en las páginas que requieren autenticación, haz esto:

<?php require ''auth.php''; require_login(); ?>

Donde auth.php puede contener:

<?php function loggedin(){ return isset( $_SESSION[''loggedin''] ); } function require_login(){ if( !loggedin() ){ header( ''Location: /login.php?referrer=''.$_SERVER[''REQUEST_URI''] ); exit; } } ?>


Todo lo que Christian Lescuyer escribió es correcto. Nótese, sin embargo, que dijo "lo haría" y no "debería". La elección no es tan fácil.

En primer lugar, la seguridad no es un problema en la elección. Deberías tener un control de seguridad en el servidor cuando ejecutas una acción. El código que decide mostrar u ocultar el botón que conduce a la acción es irrelevante.

Eso nos deja con un solo inconveniente de hacer la lógica show / hide en Javascript: el HTML enviado al usuario es más grande de lo necesario. Esto puede no ser un gran problema.

Sin embargo, tener lógica show / hide en PHP tiene un signo menos. El código PHP requerido suele ser una sopa de etiquetas . El código de Akira proporciona un buen ejemplo de cómo se hace habitualmente.

El código JavaScript correspondiente probablemente se parecería a esto:

if (logged()) { elementSecretArea.style.display = "list-item"; }

(suponiendo que los elementos que podrían ocultarse tienen visualización: ninguno por defecto).

Este estilo también permite un agradable escenario "Ajax": el usuario ve una página sin área secreta, ingresa la contraseña, ve el área secreta todo sin refrescar la página.

Por lo tanto, si ya tiene un script que se ejecuta cuando su documento se carga por otros motivos, consideraría seriamente tener allí la lógica show / hide.