Foros del Web » Programando para Internet » PHP »

Seguridad Web

Estas en el tema de Seguridad Web en el foro de PHP en Foros del Web. Éste codigo delante de archivos como: addnews.php, deletenews.php,...etc és seguro? és decir tengo un sistema de noticias por lo que hay archivos para el administrador ...
  #1 (permalink)  
Antiguo 06/02/2009, 07:40
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
Seguridad Web

Éste codigo delante de archivos como: addnews.php, deletenews.php,...etc és seguro?

és decir tengo un sistema de noticias por lo que hay archivos para el administrador donde puede gestionar las noticias y las categorias incluso puede borrarlas. Quise hace run sistema de autentificacion con MySQL y vi que era una estupidez ya que solo necessito 1 usuario. És possible hackerar este codigo?


Lo he llamado seguridad.php

Y he puesto un

include("seguridad.php"); delante de todos los archivos que queria que protegriera incluso los que suben archivos mediante GET y POST. La otra pregunta és pueden introducir GET en la barra de arriba para meter codigo si hay el archivo seguridad.php?

gracias!


seguridad.php

Código PHP:
<?
if(!isset($_SERVER['PHP_AUTH_USER'])){
Header("WWW-Authenticate: Basic realm=\"Zona protegida\"");
Header ("HTTP/1.0 401 Unauthorized");
exit;}

if(
$_SERVER['PHP_AUTH_USER'] == "admin" && $_SERVER['PHP_AUTH_PW'] == "admin"){
}
else{
Header ("Permis denegat");
echo 
"<center><font color=red>Error : l'usuari i/o la contrasenya no són correctes. </font></center>";
exit;
}
?>
  #2 (permalink)  
Antiguo 07/02/2009, 01:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Seguridad Web

bueno, pues si pones en evidencia la contraseña si... es fácil hackear tu código

mientras nadie sepa la contraseña, es mas difícil eso...


tu pregunta, mmm.... NO, si no usas GET en tu autentificación es imposible que aun ingresando valores alguien pase tu seguridad...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/02/2009, 12:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Seguridad Web

Ok muchas graciaass! Asi que si nadie sabe el nombre de usuari ni la contrasenya no podràn entrar de ninguna forma?

evidentemente ni el user ni la contra son admin, admin... serà algo mas complicado.

Tenia esa duda, lo otro seria que el archivo que me sube las noticias se llama setup.php que una vez escribes todo en formnews.php se manda mediante POST a setup.php que en el hay el archivo de autentificacion si alguien viniera y creara un archivo desde otro servidor que se llamara:

formulario.php i ese formulario se envia a mi setup.php este lo detectarà como variables pròpias? o tampoco podrà pasar la seguridad?

Gracias!
  #4 (permalink)  
Antiguo 07/02/2009, 16:57
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Seguridad Web

Una buena estrategia sería tener adicionalmente la contraseña encriptada en el script. Usando md5() hallas el hash md5 de tu contraseña y ese hash es el que colocas en tu script. Para comprobar, tomas la contraseña que está entrando (del usurio) y la pasas por md5(), luego comparas

Código PHP:
// Si tuy password fuese "admin", el hash md5 sería "21232f297a57a5a743894a0e4a801fc3"
if($_SERVER['PHP_AUTH_USER'] == "admin" && md5($_SERVER['PHP_AUTH_PW']) == "21232f297a57a5a743894a0e4a801fc3"){ 
    
///

Dado que el hash md5 es un hash sólo de ida, si alguien ve tu código por X motivo, igual no podrá saber la contraseña real.

Con respecto a tu última pregunta. Si un formulario externo está enlazado a tu script php, este tomará las variables de ese formulario como si estuviese en tu mismo servidor. Puedes filtrar usando $_SERVER['HTTP_REFERER'] aunque no es lo más óptimo. Por otro lado, no tiene spor qué preocuparte si en tu archivo setup.php que recibe las variables del formulario tienes esa regla de validación. Con formulario externo o no, igual se deberá poner el usuario y la contraseña que ha definido.

  #5 (permalink)  
Antiguo 13/02/2009, 14:23
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
muchas gracias okram! me resulto de mucha ayuda a veces cuando hago codigos me resultan de los mas inseguros alomejor es porque conozco el codigo... de todas formas gracias por tu ayuda!

Hola genteee! Una pregunta, porquè en mi localhost este codigo, me funciona y en mi servidor de pago no funciona...:S

Alguna idea?

Código PHP:
<?
if(!isset($_SERVER['PHP_AUTH_USER'])){
Header("WWW-Authenticate: Basic realm=\"Zona protegida\"");
Header ("HTTP/1.0 401 Unauthorized");
exit;}

if(
$_SERVER['PHP_AUTH_USER'] == "admin" && $_SERVER['PHP_AUTH_PW'] == "admin"){
}
else{
Header ("Permis denegat");
echo 
"<center><font color=red>Error : l'usuari i/o la contrasenya no són correctes. </font></center>";
exit;
}
?>
Tengo que activar algo del servidor??

Graciaas!

Última edición por GatorV; 16/04/2009 a las 11:29
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 23:51.