Un esquema simple de almacenamiento de datos para restringir el acceso público

He estado trabajando en una biblioteca que permite que un website agregue una sección de comentarios a su website.

La idea era mantenerlo lo más ligero posible, por lo que preferí usar JSON para el almacenamiento de datos básicos, como el post de comentario, el website y el nombre de usuario. Todos estos datos son públicos y se puede acceder directamente a través de JSON. No me importa esto ya que los comentarios se mostrarán públicamente de todos modos.

Sin embargo, el problema surge cuando quiero que se notifique a un usuario cuando alguien responde a su comentario. El correo electrónico está allí en el campo de input, pero no quiero que se almacene en el file público JSON. ¿Hay algún otro esquema de almacenamiento de datos del lado del server donde pueda almacenar el correo electrónico de forma privada y al mismo time usar esos correos electrónicos de los scripts del lado del server para enviar correos electrónicos?

MySQL y otros harán que la biblioteca sea torpe, así que eso está fuera de la list.

O incluso junto a estas condiciones, ¿hay alguna otra manera posible de hacer esto?

Lo que necesitas son API y no una fuente de datos. Una fuente de datos es una verdad donde viven todos los datos. Al igual que en su ejemplo, si tiene correo electrónico en sus datos, siempre estará allí. A less que mantenga el campo de correo electrónico por separado.

  1. El path es crear una API que generará datos requeridos de files JSON (o database). Puede optar por ocultar los datos que no desea mostrar. De esta manera, solo expone la API, en lugar del nombre del file directamente, lo que tiene riesgos de ser modificado o alterado o pirateado muy fácilmente.

  2. Otra forma sin usar API es tener múltiples files JSON. Un file tendrá datos básicos, y otro tendrá datos confidenciales, junto con una key externa, como una key única que mapeará la información confidencial u otra información con el logging principal.

Ejemplo: Comments.json:

 { "comments": [{userId: 1, ...},{...}] } 

CommentDetails.json

 {...} 

Usuarios:

 [ 1: {"username": "", "email": "asdas@asdas.com",...} ] 

Puede usar una database como MongoDB, que almacena documentos JSON, para mantener los datos de los usuarios y comentarios.

Entonces, la colección de usuarios no se enviará por completo al usuario, se filtrará en los correos electrónicos y otros datos confidenciales.

Cree un segundo file JSON, o file CSV para ese asunto, que se mantiene privado, que asigna usuarios a sus ID de correo electrónico.

Interesante proyecto que estás intentando, por cierto. ¡¡Buena suerte!! 🙂

¿Por qué no simplemente usar .htaccess en un directory donde se almacenan los datos y usar algo así como "Denegar de todo"?

Sus scripts podrían tener acceso entonces, pero no el browser de ningún usuario.

Suponiendo que haya un server de correo involucrado, ¿puede alojar un service web con dos puntos finales?

Puntos finales:

  1. envía correos electrónicos; toma un guid de remitente en lugar de una dirección de correo electrónico
  2. almacena un correo electrónico; toma una dirección de correo electrónico y devuelve un remitente guid

Este service web podría ser utilizado por su biblioteca desde cualquier server accesible de www. En el host del service web, los correos electrónicos se pueden almacenar en el formatting de su elección. También querrá proteger su service web para evitar que otros activen las notifications por correo.

    Intereting Posts