Creación de un tienda en linea 3: Acceso del administrador


 

seguridad

Como el backend es la parte de la tienda que construirá el contenido de la misma, comenzaremos con esta parte y lo primero con lo que trabajaremos será con el acceso al backend, ya que no debemos de permitir que cualquiera entre a el.

Lo primero sera  crear la carpeta donde colocaremos el backend, como lo vemos a continuación

carpetas

 

Observemos que el primer error en este diseño es darle a nuestra carpeta el nombre de admin, ya que es un nombre que denota lo que hay dentro y sería el primer nombre que buscaría alguien que deseará violar la seguridad de nuestro sitio.

Ahora bien crearemos el archivo índex.html que será el acceso a nuestro sitio, de la siguiente forma:

acceso sistema

 

Lo primero que debemos de fijarnos en esta pagina HTML, es en la linea 6, observe que hemos colocado la meta etiqueta nofollow, con la cual le indicamos a los buscadores que no deben indexar este archivo, por que definitivamente no queremos que esta pagina aparezca en las búsquedas de google.

En la linea 12 podemos observa que los datos del formulario serán enviados a un PHP al que hemos llamado Validar, ahora bien, como en este formulario es recomendable que evitemos que los navegadores almacenen en su función de autocompletar tanto el nombre del usuario como su contraseña, por lo que en las lineas 15 y 17  en las etiquetas input colocamos el atributo autocomplete=»off» para que los navegadores no recuerden nada de lo que escribamos en ella, ademas de agregar el atributo required para que el formulario no se envíe si no hemos escrito nada en los input.

El atributo required hace que los campos que hemos colocado en el formulario con la etiqueta input sean obligatorios.

 

Ahora veamos el archivo de validación.

validar.php

Observe que en la linea 2 del archivo validar.php hemos comenzado con al instrucción session_star, la cual se usa para crear sesiones, es indispensable que esta sea la primera linea después de la etiqueta de apertura del PHP, ya que de otra forma no funcionaria.

En la linea 3 usamos la instrucción, include_once, con la cual insertamos un archivo PHP dentro de otro y es como si se ejecutara dentro del mismo, en este caso estamos incluyendo el archivo conectar.php que contiene la instrucción con la que establecemos la conexión con la base de datos,  de esta forma al subir nuestro programa al servidor solo tenemos que modificar un archivo con la conexión a la base de datos y no todos los scripts PHP de nuestro sistema.

Captura de pantalla 2013-09-29 a la(s) 19.57.57

 

Continuando con nuestro validar.php, en las lineas 5 y 6 copiamos el nombre de usuario y la clave a variables de PHP, esto es algo que nos gusta hacer para simplificar la tarea de escribir las consultas.

En la linea 8 creamos una consulta para buscar si el usuario con la clave existen en la tabla de usuarios de nuestra base de datos, dicha consulta la ejecutamos con la instrucción mysqli_query, la cual necesita de dos parámetros, la variable de conexión a la base de datos que en este caso es $conecta porque asi lo establecimos en nuestro archivo conectar.php, el otro parametro es la variable en donde escribimos la consulta.

Para comprobar que la consulta se efectuo con éxito, se usa la instrucción mysqli_num_rows, la cual devuelve el numero de registros que se obtuvieron con una consulta, ahora solo debemos de verificar si se obtuvo 1 registro, en nuestro ejemplo colocamos $tabla> 0, pero en realidad debimos usar $tabla==1 para que no nos deje entrar si alguien ha duplicado el registro.

Observe que en las lineas 14 y 15 usamos el arreglo $_SESSION, el cual es un arreglo asociativo que usamos para crear las variables de sesión, estas nos permitirán validar en los demas archivos PHP si alguien ha entrado o no a través de nuestro índex.html o ha tratado de entrar de forma directa a alguna pagina especifica.

El contenido del arreglo $_SESSION solo existe mientras el navegador este abierto, una vez que lo cerramos el contenido desaparece.

En la linea 16 usamos la instrucción heder, para hacer que se redireccione a nuestro archivo menú.php, el cual contiene el menú de nuestro backend, es importante que la letra «L» de Location en la instrucción header se encuentre en mayuscula para que se haga el redireccionamiento.

En caso de que el usuario no se encuentre registrado en nuestra tabla con su correspondiente clave, se usara la instrucción session_destroy para  borrar el contenido del arreglo $_SESSION y en la siguiente linea volvemos a usar la instrucción header, pero ahora hacemos que nos regrese a la pagina de acceso, para que vuelva a pedir el usuario y contraseña.

Lo unico que no hemos incluido en este ejemplo, es que si existe el usuario con la clave se debe de generar un token, el cual es un numero aleatorio que generamos a través de algún método que nos garantice que no se repetirá, esto con la finalidad de verificar si el usuario tiene  una sesion activa y no se permita que alguien mas entre con el mismo usuario y contraseña, no lo hemos incluido para hacer mas simple y entendible el ejemplo, ademas que en otro post analizaremos algunos métodos de generación de token.

 

 

 

 

 

 

 

¿Qué estas pensando?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.