elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  PHP con MYSQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PHP con MYSQL  (Leído 3,321 veces)
Wexex5

Desconectado Desconectado

Mensajes: 14


Ver Perfil
PHP con MYSQL
« en: 3 Noviembre 2021, 11:30 am »

Muy buenas a todos, estoy trabajando en una tienda online, y estoy en la parte de programar php con mysql pero he estado mirando que se suele poner datos sensible en el codigo de php para obtener datos de mysql.

Sinceranmente no me parece bien hacer esto para nada, escribir datos sensibles en un fichero(a fin de cuentas), es el error mas grande que uno puede tener...

Las funciones de php para mysql pienso igual, otro error mas por las inyecciones de codigos en sus funciones...

Como se supone que se conecta php con mysql, sin escribir datos sensible?


« Última modificación: 3 Noviembre 2021, 11:32 am por Wexex5 » En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.586


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: PHP con MYSQL
« Respuesta #1 en: 3 Noviembre 2021, 11:37 am »

¿Datos sensibles a que te refieres? ¿A los credenciales de acceso de MySQL?

Es lo habitual, WordPress, Drupal, vBulletin, etc pues el fichero de configuración php incluye los datos de acceso, usuario y contraseña para acceder a la BD MySQL

Es un fichero configuración php que no se puede leer, sólo se escriben los datos para poderse conectar y ya. Sería peor al revés, sin ninguna autenticación.

Para más seguridad MySQL (MariaDB) se puede configurar para dar acceso sólo localmente (sin acceso remoto) y sólo a una determinada BD (y a sus respectivas tablas)

Opciones de Seguridad fichero my.cnf

Citar
    #security
    local-infile=0
    # para poner mysql remoto comentar (mysql sólo en local)
    skip-networking
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    #no dns lookups
    skip-name-resolve


En línea

Wexex5

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: PHP con MYSQL
« Respuesta #2 en: 3 Noviembre 2021, 12:12 pm »

Entiendo que sea lo habitual, pero escribir un usuario y una contraseña en un codigo, mmmm..... sigo sin verlo bien...

Con javascript se puede inyectar codigos que interfirieran en sus variables y funciones y podria llegar a las funciones o variables de php que pueda comprometan el sistema.

Si tengo un directorio que almacena comentarios de todo los clientes, un hacker podria literalmente escribir datos en las variables de javascript o ejecutar funciones.

Con php si modifica ciertas identificaciones en los botones de html podrias ejecutar funciones que hay en el codigo php!!!

Por dios es un error escribir cualquier dato sensible en un fichero...

Es por lo que lo veo mal y derivaciones a este tipo de metodos.

Obviamente no existe la maxima seguridad, pero al menos hay que hacer que el hacker muera de viejo antes de que lo consiga.
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: PHP con MYSQL
« Respuesta #3 en: 3 Noviembre 2021, 13:20 pm »

Con javascript se puede inyectar codigos que interfirieran en sus variables y funciones y podria llegar a las funciones o variables de php que pueda comprometan el sistema.

Claro, pero por eso tienes que programar teniendo en cuenta la seguridad del sistema.

Si tengo un directorio que almacena comentarios de todo los clientes, un hacker podria literalmente escribir datos en las variables de javascript o ejecutar funciones.

Si tu seguridad se basa en javascript pues sí. Pero javascript no es el lugar para hacer este tipo de verificaciones. Sobre todo para este tipo de cosas.

Con php si modifica ciertas identificaciones en los botones de html podrias ejecutar funciones que hay en el codigo php!!!

Eh... no. Desde el HTML a lo más que puedes hacer es cambiar la URL a la que se envía la petición. De ahí se corre un script en PHP. HTML ni javascript tiene acceso directo al código de PHP.

Por dios es un error escribir cualquier dato sensible en un fichero...

En cierta parte es cierto, por eso existen otros sistemas de autentificación para los diversos sistemas que puedes tener que no usan usuario y contraseña (no solo de bases de datos, sino también de otros servicios). Pero de que las credenciales tienen que estar guardadas en algún lado pues no hay otra manera... A menos que quieras estar introduciendo las credenciales manualmente en algún proceso cada que reinicias el sistema (y luego tener que programar el acceso a este proceso).


Es por lo que lo veo mal y derivaciones a este tipo de metodos.

Obviamente no existe la maxima seguridad, pero al menos hay que hacer que el hacker muera de viejo antes de que lo consiga.

En este caso, lo peor que puede pasar es que tu reusas las credenciales para otro sistema. Por ejemplo, era habitual que los servicios de hosting te daban una sola contraseña para la cuenta del hosting, la cuenta de FTP y la cuenta de MySQL. Así que si alguien alcanzaba a leer la contraseña pues ya tenía acceso a todo.

Pero si las credenciales solo aplica a tu sistema de base de datos entonces realmente no puedes hacer nada más que conectarte a este sistema. Y los sistemas de bases de datos generalmente no están expuestos más que al sistema que necesite accederlo. Es decir, que el atacante necesitaría todavía tener acceso al servidor para poder acceder a la base de datos.
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: PHP con MYSQL
« Respuesta #4 en: 3 Noviembre 2021, 13:26 pm »

Todos los lenguajes server-side funcionan así. De una manera o de otra debes exponer las credenciales para que se puedan usar. En despliegues lo normal hoy en dia es usar variables de entorno, pero igualmente si alguien consigue acceso al servidor va a poder listar tanto los archivos como las variables de entorno.... viene siendo lo mismo.


Citar
Por dios es un error escribir cualquier dato sensible en un fichero...

¿Y como pretendes suministrarlos? Me da a mi que has tocado pocos lenguajes server-side.


Saludos
« Última modificación: 3 Noviembre 2021, 13:27 pm por #!drvy » En línea

Wexex5

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: PHP con MYSQL
« Respuesta #5 en: 3 Noviembre 2021, 14:14 pm »

Bien estoy de acuerdo...

Alguna duda que tengo...
 
Y mejor te hablo en privado...
En línea

Wexex5

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: PHP con MYSQL
« Respuesta #6 en: 3 Noviembre 2021, 15:45 pm »

Todos los lenguajes server-side funcionan así. De una manera o de otra debes exponer las credenciales para que se puedan usar. En despliegues lo normal hoy en dia es usar variables de entorno, pero igualmente si alguien consigue acceso al servidor va a poder listar tanto los archivos como las variables de entorno.... viene siendo lo mismo.


¿Y como pretendes suministrarlos? Me da a mi que has tocado pocos lenguajes server-side.


Saludos

Pues si soy mas de sistemas y algoritmos.

Y jamas de los jamases no he escrito una contraseña en mis algoritmos. siempre me he negado.

Suelo preferir generar identificaciones a las variables y al propio dato(id unico temporal para el usuario y sus acciones, y datos), constantemente modificas la estructura del codigo, todo el tiempo... siempre hay una id unica para el usuario y sus acciones, asi nadie puede saber que tu eres tu.

Es como casi una autenticación por token, coincide? funciona!, no coincide? no funciona...
« Última modificación: 3 Noviembre 2021, 16:13 pm por Wexex5 » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: PHP con MYSQL
« Respuesta #7 en: 3 Noviembre 2021, 17:02 pm »

Citar
Y jamas de los jamases no he escrito una contraseña en mis algoritmos. siempre me he negado.

Las contraseñas no se escriben en algoritmos como tal. Se guardan en ficheros (que nunca deben ser versionados) o en variables de entorno que luego son leídos/as por un algoritmo.

Seas desarrollador o seas de sistemas, es imposible que no te toque un caso en el que tengas que suministrar un usuario y contraseña/token para conectarte a una base de datos, y en el momento en el que lo haces, lo estás exponiendo. Precisamente para eso existen los permisos, minimizar y mitigar el daño de una eventual fuga de datos.

Saludos
« Última modificación: 3 Noviembre 2021, 17:30 pm por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines