Foros del Web » Programando para Internet » PHP »

Que es mas seguro?

Estas en el tema de Que es mas seguro? en el foro de PHP en Foros del Web. Buen día! tengo una consulta sobre seguridad en PHP.. Que es mas seguro en un archivo de configuración? Usar constantes con: define("CONSTANTE","valor");? (que seria mas ...
  #1 (permalink)  
Antiguo 28/01/2015, 16:53
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 6
Que es mas seguro?

Buen día! tengo una consulta sobre seguridad en PHP..
Que es mas seguro en un archivo de configuración?

Usar constantes con: define("CONSTANTE","valor");? (que seria mas sencillo de utilizar en toda la aplicación).. lo que me hace dudar de esta opción es que es casi como una global, y no tengo claro porque las globales tienen mala fama.

O usar una variable tipo array: array("parametro" => "valor"); de esta manera abra que pasar la variable a todas las clases donde se tenga que implementar.

tomar en cuenta que en este archivo de configuración habrá passwords.

Gracias a todos por sus opiniones!
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).
  #2 (permalink)  
Antiguo 28/01/2015, 16:57
 
Fecha de Ingreso: noviembre-2014
Mensajes: 4
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Que es mas seguro?

Cita:
Iniciado por jvier Ver Mensaje
Buen día! tengo una consulta sobre seguridad en PHP..
Que es mas seguro en un archivo de configuración?

Usar constantes con: define("CONSTANTE","valor");? (que seria mas sencillo de utilizar en toda la aplicación).. lo que me hace dudar de esta opción es que es casi como una global, y no tengo claro porque las globales tienen mala fama.

O usar una variable tipo array: array("parametro" => "valor"); de esta manera abra que pasar la variable a todas las clases donde se tenga que implementar.

tomar en cuenta que en este archivo de configuración habrá passwords.

Gracias a todos por sus opiniones!
Buen dia! en mi opinion igual estarias configurando un array o una global que a la final se podrian tomar los datos igualmente, lo que tienes es que buscar la manera de restringir el acceso a ese archivo de configuracion, no se mucho de seguridad pero es mi opinion, a la final son datos que cambie la manera en como guardas o defines el dato no hace mucho igual a simple vista esta el valor de esa variable. Lo que debes es cuidar como la utilizas en el codigo.
  #3 (permalink)  
Antiguo 28/01/2015, 17:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Que es mas seguro?

Cita:
y no tengo claro porque las globales tienen mala fama.
Las variables globales tienen mala fama, porque básicamente puede cambiarse su valor de manera externa. Las constantes también son globales, pero son constantes, así que jamás cambiarán.

Sin embargo el problema es el mismo, las constantes pueden exponerse usando get_defined_constants() así que si alguien es capaz de ejecutar código en tu sitio podrá saber que hay ahí.

Ahora, el array es buena idea se se maneja de forma local, es decir, sin usar globales. Y mejor aún si puedes acceder a la configuración mediante algo así:
Código PHP:
Ver original
  1. function config($key) {
  2.   static $options = array(
  3.     'key' => 'value'
  4.   );
  5.  
  6.   return $options[$key];
  7. }
  8.  
  9. echo config('key'); // value

Así las opciones permanecen ocultas dentro de la función y sólo devuelves un valor a la vez a quien lo necesite.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 28/01/2015, 17:13
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 6
Respuesta: Que es mas seguro?

Gracias a los dos por su pronta respuesta..

como comentas pateketrueke: las constantes pueden exponerse usando get_defined_constants() así que si alguien es capaz de ejecutar código en tu sitio podrá saber que hay ahí..

como es que serian capaces de ejecutar esa función? sera accediendo a los archivos?

porque como dice JoangelDLR, en el caso de acceder a los archivos, cualquier forma de configuración sera visible al momento de acceder al servidor.

como nota: Wordpress utiliza constantes con define() en su configuración.. porque lo usara Wordpress si no es lo mas seguro?? si hay millones de web que utilizan este CMS?

ademas pienso sacar el archivo de configuracion fuera del directorio publico (www) del servidor e incluyendolo mas o menos asi: ../../configuracion.php

y pateketrueke... me podrias explicar que funcion desempeña la definicion static en el array dentro de la funcion que compartiste?
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).

Última edición por jvier; 28/01/2015 a las 18:30

Etiquetas: configuraciòn, 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 23:31.