Underc0de - Hacking y seguridad informática

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Vuls en Julio 12, 2019, 10:31:23 pm

Título: Web - Base de datos
Publicado por: Vuls en Julio 12, 2019, 10:31:23 pm
Hola, tengo una duda acerca de paginas web con sistema de publicaciones, espero estar en lo correcto.

EJ: hice una web de noticias en la que se almacenara(por noticia) titulo, contenido e imagenes y cuando se almacene para mostrar todas las noticias seria utilizando la query SELECT * FROM tables??
Título: Re:Web - Base de datos
Publicado por: Mortal_Poison en Julio 12, 2019, 10:39:16 pm
Buenas Vuls, (https://underc0de.org/foro/profile/Vuls/)

Sí, en ese caso sería de esa forma. Sin embargo, yo usaría un ORM para evitar inyecciones de las cuales no puedes percatarte. En otro caso, puedes usar PDO en PHP o en su defecto, sanitizar las entradas.

Pero respondiendo a tu pregunta, sí, sería algo como:

Código: Solo los usuarios pueden ver los links. Registrate o Ingresar
select titulo, contenido, imagen from noticias where noticia_tipo = "mundiales";

No selecciones con "*", ya que eso carga más a la DB y por eficiencia, sólo pon los campos que requieres. Recuerda cómo Mysql toma o lee la consulta.

Editado: incluso, me gustaría añadir que puedes usar los famosos paginadores. Por ejemplo, en frameworks como Symfony, existe un bundle llamado KnpPaginator.

Un saludo.
Título: Re:Web - Base de datos
Publicado por: Vuls en Julio 12, 2019, 10:46:02 pm
Solo los usuarios pueden ver los links. Registrate o Ingresar
Buenas Vuls, (https://underc0de.org/foro/profile/Vuls/)

Sí, en ese caso sería de esa forma. Sin embargo, yo usaría un ORM para evitar inyecciones de las cuales no puedes percatarte. En otro caso, puedes usar PDO en PHP o en su defecto, sanitizar las entradas.

Pero respondiendo a tu pregunta, sí, sería algo como:

Código: Solo los usuarios pueden ver los links. Registrate o Ingresar
select titulo, contenido, imagen from noticias where noticia_tipo = "mundiales";

No selecciones con "*", ya que eso carga más a la DB y por eficiencia, sólo pon los campos que requieres. Recuerda cómo Mysql toma o lee la consulta.

Un saludo.

En mi caso estoy usando nodejs , entonces para todo tipo de publicaciones como otro ejemplo una red social la publicación de imágenes , textos etc...
Sería de la misma forma se almacena en la sql y se muestra con select?
Título: Re:Web - Base de datos
Publicado por: Mortal_Poison en Julio 12, 2019, 10:55:38 pm
En el caso de NodeJS, tienes a NPM como el gestor de paquetes que trae muchísimos paquetes excelentes. Lo que tienes que buscar, es que tengan actualizaciones y no usar uno del 2016 ::).

Ahora bien, como te mencioné, lo mejor es usar un ORM. Está bookshelf (https://github.com/bookshelf/bookshelf) o el más usado, que se llama sequelize (https://github.com/sequelize/sequelize). Por favor, no uses node-orm2, ya que sus actualizaciones no son frecuentes y puede ocasionar un riesgo en la seguridad de tu aplicación.

Por otra parte, te dejo un post de cómo hacerlo con NodeJS y Mysql sin ningún ORM: build a simple app using node js and mysql (https://dev.to/achowba/build-a-simple-app-using-node-js-and-mysql-19me). Y sí, ahí podrás hacer ese tipo de consultas.

Un saludo.