Pregunta

¿Es seguro exponer los identificadores de entidad de los datos que se encuentran en Google Datastore?Por ejemplo, en mi código tengo una entidad con esta identificación:

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String id;

La identificación será similar a esta: agptZeERtzaWYvSQadLEgZDdRsUYRs

¿Alguien puede extraer la contraseña, la URL de la aplicación y cualquier otra información de esta cadena?¿Cuál es el significado de esa cadena?

¿Fue útil?

Solución

Esa entidad ID contiene el objeto, ID de aplicación, y el nombre de clase de objeto. Es sólo una cadena codificada. En realidad, no cualquier tipo de riesgo para la seguridad.

Otros consejos

Puede utilizar el KeyFactory para convertir a keytoString, stringToKey de la siguiente URL Google App Engine :

Identificación del que creo que era un identificador único para el almacenamiento de datos en Google App Engine.

  

casos clave pueden ser convertidos a y   de la representación de cadena codificada   utilizando los métodos KeyFactory   keyToString () y stringToKey ().

     

Cuando el uso de cadenas clave codificados, se   puede proporcionar acceso a un objeto de   cuerda o ID numérico con una   campos adicionales.

espero que ayude.

Tigre.

Si navega a localhost:4321/_ah/admin, puede aprovechar el visor del almacén de datos del SDK, donde verá que cada tipo de entidad tiene un campo CLAVE y un campo NOMBRE/ID;

Ya sea que use long, String o Key como @PrimaryKey, habrá una columna ID/Nombre con una Cadena/número y una columna CLAVE, con la clave codificada para dicha ID.Como se mencionó en otras publicaciones, esta codificación codifica {md5s, muy probablemente} la identificación de su aplicación appspot, el nombre de clase completo del objeto de datos y todo lo que especifique como @PrimaryKey.

La única vez que querrás tener acceso directo a este campo es si no te importa en absoluto cómo se llaman los datos, {cuando necesites que tu programa los encuentre, pero los humanos no los buscarán adivinando palabras en un cuadro de texto}, o cuando QUIERA tener varios objetos del mismo tipo y nombre {¿tal vez usando una versión int?}, entonces debe usar la sintaxis de clave codificada.Tanto la CLAVE como la ID están presentes en la base de datos, ya sea que coloque un campo en su clase, el uso de la sintaxis de clave codificada solo le brinda acceso a este valor.

Además, hay una bonificación de velocidad disponible para aplicaciones que utilizan claves codificadas...Sólo hay dos tipos de consultas:SELECT * y SELECT _ _ tecla _ _ {espacios utilizados para mostrar que hay dos _}.Para grandes conjuntos de datos en aplicaciones AJAX, la única forma eficiente de paginar datos es seleccionar todas las claves, enviarlas al cliente y hacer que el cliente solicite 0->X número de registros, crear enlaces para los otros X-> Y resultados y consultar el servidor con el primer conjunto de claves codificadas para obtener datos completos, analizar la respuesta en pequeñas listas agradables y evitar cargar 397 objetos de datos del servidor que no son inmediatamente útiles.

Enviar claves codificadas hacia arriba y hacia abajo por el cable puede requerir un poco más de ancho de banda que las claves no codificadas {a menos que seas tan largo como yo para nombrar cosas!};pero reduce esos ciclos de CPU en appengine, hace que tus cuotas sean más felices y las aplicaciones de todos se ejecutan solo una fracción de segundo más rápido.

Esta clave, incluso si de alguna manera no está codificada, solo expondrá datos tan confidenciales como cualquier cosa que usted convierta en una clave primaria.La contraseña de su aplicación no está involucrada, ni tampoco las contraseñas de los usuarios en ningún modelo de datos sensato.Casi lo único que podría filtrarse {BIG might} es una dirección de correo electrónico de usuario, si usa la clase de Usuario proporcionada para la autenticación, o los nombres de clase que usa en su fuente.

...Básicamente, sólo la información que ya está disponible al observar una o dos solicitudes de incendio podría quedar expuesta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top