Foros del Web » Programando para Internet » PHP »

metodo de seguridad para ingreso a web (funcionando, intencion de mejorar y optimizar

Estas en el tema de metodo de seguridad para ingreso a web (funcionando, intencion de mejorar y optimizar en el foro de PHP en Foros del Web. saludos amigos, desde hace un tiempo de leer cosas para alla y para aca estoy usando 2 tecnicas para tratar de garantizar que el acceso ...
  #1 (permalink)  
Antiguo 24/08/2013, 08:30
 
Fecha de Ingreso: abril-2006
Mensajes: 72
Antigüedad: 18 años
Puntos: 0
metodo de seguridad para ingreso a web (funcionando, intencion de mejorar y optimizar

saludos amigos, desde hace un tiempo de leer cosas para alla y para aca estoy usando 2 tecnicas para tratar de garantizar que el acceso a mi web sea algo seguro les muestro con la intencion de que me orienten si esta mal, si lo que creo que ocurre no es asi y como poder mejorar y optimizar dicha tecnica.

Código PHP:
<?php
session_start
(); 
if (isset(
$_SESSION["s_user_username"])) {// garantizo que inicio sesion
$refer strtolower$_SERVER['HTTP_REFERER'] ); // obtengo de donde viene la solicitud
if(substr_count($refer'www.miserver.com')==1){ // esto permite el acceso solo cuando se hace click o direcciona desde dentro del mismo servidor, por ejemplo si entre y abrio y luego me situo en la barra de direcciones y le doy enter no me deja entrar cosa que mis usuarios pueden soportar....
?>
aqui adentro va el cuerpo del archivo en cuestion si todo va bien es que lo mostrara sino ira hacia los else.



<?php }else{// este cuando no tiene session
echo ("<script language='javascript'>                                                  
           alert('Esta pagina es privada, no tiene los permisos necesarios')
              var pagina='index.php'
              location.href=pagina</script>"
);

} }else{
// cuando accede de forma irregular
echo ("<script language='javascript'>                                                  
           alert('Esta pagina es privada, no tiene los permisos necesarios')
              var pagina='index.php'
              location.href=pagina</script>"
);

}
bien eso es lo que tengo ahora como lo mejoramos? que le podemos agregar? que me recomiendan? y si hace lo que creo que hace? hasta el momento me ha funcionado

OPPS esto creo que deberia estar en PHP disculpen si algun admin lo puede trasladar.

Última edición por BLADDE; 24/08/2013 a las 08:38 Razón: fue publicado donde no iba. error mio :I
  #2 (permalink)  
Antiguo 26/08/2013, 11:29
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: metodo de seguridad para ingreso a web (funcionando, intencion de mejorar

Creo que es mejor no mostrar mensajes de tipo PROHIBIDO, hace que sigan intentándolo.

* Agregar un archivo index.php en cada carpeta con redirección al raiz (sin dar aviso).
Código PHP:
Ver original
  1. <?php
  2. header("Location: ../");
  3. ?>

* Al inicio de las páginas, ya tienes, pero ponlo también con php.
Código PHP:
Ver original
  1. if($_SESSION['Autenticado'] !== 1 ) {
  2.     header("Location: ./index.php");
  3. }

* Agregar algo para los campos de formulario, si no tienes.
Código PHP:
Ver original
  1. function limpiar() {
  2.    foreach ($_POST as $indice=>$valor) {
  3.       $_POST[$indice]=mysql_real_escape_string(stripslashes(trim($valor)));
  4.    }
  5. }
  #3 (permalink)  
Antiguo 26/08/2013, 11:48
 
Fecha de Ingreso: abril-2006
Mensajes: 72
Antigüedad: 18 años
Puntos: 0
Respuesta: metodo de seguridad para ingreso a web (funcionando, intencion de mejorar

esa ultima que dices me valida lo que traigo de la BD???
yo tengo esto para proteger lo que voy a procesar
Código PHP:
array_walk($_POST'limpiarCadena');
array_walk($_GET'limpiarCadena');
function 
limpiarCadena($valor)
{
    
$valor str_ireplace("SELECT","",$valor);
    
$valor str_ireplace("COPY","",$valor);
    
$valor str_ireplace("DELETE","",$valor);
    
$valor str_ireplace("DROP","",$valor);
    
$valor str_ireplace("DUMP","",$valor);
    
$valor str_ireplace(" OR ","",$valor);
    
$valor str_ireplace("%","",$valor);
    
$valor str_ireplace("LIKE","",$valor);
    
$valor str_ireplace("--","",$valor);
    
$valor str_ireplace("^","",$valor);
    
$valor str_ireplace("[","",$valor);
    
$valor str_ireplace("]","",$valor);
    
$valor str_ireplace("\\","",$valor);
    
$valor str_ireplace("=","",$valor);
    
$valor str_ireplace("&","",$valor);
    return 
$valor;

me dices no dar aviso si no mandarlos al index?

una pregunta ese $_SESSION['Autenticado'] !== 1 el operador "!==" que hace?
  #4 (permalink)  
Antiguo 27/08/2013, 08:41
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: metodo de seguridad para ingreso a web (funcionando, intencion de mejorar

La misión de limpiar() no es validar, sino evitar en lo posible ataques de inyección sql a través del formulario.

Ejemplo:
Código PHP:
Ver original
  1. // En un select tipo
  2. $sql = "SELECT * FROM users WHERE user='".$_POST['user']."' AND password='".$_POST ['password']."';";
  3.  
  4. // Si:
  5. $_POST['user'] = ' usuario';
  6. $_POST['password'] = "' OR ''='";
  7.  
  8. // Conexión BBDD
  9. conectadb('test');
  10.  
  11. // Sin protección el pass equivale a: nada es igual a nada, da acceso al sistema:
  12. $sql = "SELECT * FROM users WHERE user='usuario' AND password='' OR ''='';";
  13.  
  14. // Con función
  15. limpiar();
  16. $sql = "SELECT * FROM users WHERE user='usuario' AND password='\' OR \'\'=\'';";
  17. // Rdo: password=\"\' OR \'\'=\'\"

// !!Tiene que haber una conexión con la BBDD antes de usar mysql_real_escape_string() o limpia totalmente:
Código PHP:
Ver original
  1. $sql = "SELECT * FROM users WHERE user='' AND password='';";


!== 1 Significa que no es igual a 1, no es true, en fin que no está logeado.

El usuario envía los datos. En la función que lo valida, si todo esa bien, hay una línea:
Código PHP:
Ver original
  1. $_SESSION['Autenticado'] = 1; // lo mismo true u otra cosa.

Ya tienes uno:
Código PHP:
Ver original
  1. if (isset($_SESSION["s_user_username"])) {// garantizo que inicio sesion
  #5 (permalink)  
Antiguo 27/08/2013, 09:45
 
Fecha de Ingreso: abril-2006
Mensajes: 72
Antigüedad: 18 años
Puntos: 0
Respuesta: metodo de seguridad para ingreso a web (funcionando, intencion de mejorar

saludos finalmente una plantilla segura de acceso a mi sitio seria:
Código PHP:
 <?php

function limpiar() //funcion que limpia de sentencias sql las variables que usare para comparar 
{
       foreach (
$_POST as $indice=>$valor
    {
          
$_POST[$indice]=mysql_real_escape_string(stripslashes(trim($valor)));
           }
}
session_start(); 
if (isset(
$_SESSION["s_user_username"])) {// garantizo que inicio sesion (este if no deberia ir en login por q en ese archvo es que iniciara session pero debe ir en los demas archivos
$refer strtolower$_SERVER['HTTP_REFERER'] ); // obtengo de donde viene la solicitud
if(substr_count($refer'www.miserver.com')==1){ // esto permite el acceso solo cuando se hace click o direcciona desde dentro del mismo servidor, por ejemplo si entre y abrio y luego me situo en la barra de direcciones y le doy enter no me deja entrar cosa que mis usuarios pueden soportar....
// si pasa todo los parametros de seguridad verifico el logueo (usare de ejemplo un login.php
include_once 'conexion.php';
autenticacion(limpiar($_POST['usuario']),limpiar($_POST['clave']));// garantizo que lo que paso por post este limpio

?>
aqui adentro va el cuerpo del archivo en cuestion si todo va bien es que lo mostrara sino ira hacia los else.



<?php }else{// este cuando no tiene session
 
header("Location: ../login.php");

} }else{
// cuando accede de forma irregular
 
header("Location: ../index.php");

?>
la funcion que coloque limpiarcadena() no haria falta?
algo mas que se pueda agregar?
1)verifico que halla iniciado sesion (cuando no es login.php)
2)verifico que la solicitud sea desde mi servidor
3)me cuido del sqlinjection
algo mas????????
  #6 (permalink)  
Antiguo 30/08/2013, 10:07
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: metodo de seguridad para ingreso a web (funcionando, intencion de mejorar

Leer sobre el uso de .httaccess y seguridad, hay muchos ejemplos por ahí.
Hasta donde sé la seguridad no existe en informática, eso me han dicho.

Etiquetas: funcion, ingreso, javascript, mejorar, metodo, seguridad
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 01:10.