www.state-it.info

Gran base de respuestas a las preguntas de los desarrolladores
Header decor

Almacenamiento криптованных de datos en la base de datos, (des)криптование en el cliente

flom 2010-10-14 18:50:22

Hay datos que están almacenados en MySQL y html de la página, en la que se produce la visualización y edición de datos a través de JS+AJAX. Es necesario reorganizar el esquema de manera que los datos almacenados en la base de datos se "ilegible", y"fáciles de leer" fueron sólo de la clave a "el cliente". Es deseable que no se separen del MySQL/PHP en el servidor y JS+AJAX en el cliente.

Interesado en la dirección en la que cavar: la ideología, la tecnología...
Gracias.

Total answers: 4

Ajex 2010-10-15 01:01:59

En general, usted es mi изобретаете algún tipo de bicicleta.
"los datos se leen de la clave en el js" qué más da? haciendo estándar de autorización de usuarios. Más adelante en el nivel de la pcp en función del nivel de acceso selecciona los datos necesarios.

Para la aplicación de la misma de su esquema sería algo así como:
Elige cualquier algoritmo, la función de dos de que (encode decode), podrá implementar en php y js. Siguiente antes de la inserción de los datos escribiendo código, y cuando consulta раскодируете.

En general, no está claro por qué esto es necesario, y que de a quién y en qué lado desea ocultar. Podría dar más consejos.

Por ejemplo, la Función descifrar, se puede escribir directamente en mysql (si tienes tu propio servidor o tiene acceso a los procedimientos almacenados).
Entonces, la muestra será el tipo select decode(text,key) from table...
key se puede transmitir al GET/POST consulta, pero en este caso, el cliente volarán ya los datos descifrados. Si tienes miedo a la interceptación de nuevo https.

Si me gustaría descifrar a js ajax de ayuda.
Tomando cualquier framework como jQuery, hay una función $.ajax
El código se verá así (escribo con la cabeza puede ser un error):

<script>
function my_decode(data,key)
{
//Тут будет алгоритм декодирования
}
function LoadData()
{
$.ajax({
  url: 'ajax.php?OrderNo=5',
  success: function(data) {
    $('.result').html(my_decode(data,key));
  }
});
}
</script>
<a href="javascript: void(0);" onclick="LoadData()">Показать данные</a>
<div id="result">Сюда выведутся данные</div>

Eso es lo que va a suceder. Haciendo clic en el enlace se producirá una petición ajax, que hará que el script que hará la selección de los datos de la base. A continuación, después de la llamada a los datos de расшифруются en el lado del cliente y se carguen los datos descifrados.
El caso de la elección de un algoritmo de cifrado

flom 2010-10-15 01:09:31

Es una aplicación web (rich-client) y músculo en un servidor web remoto de datos. El usuario que trabaja con rich-el cliente quiere, para que los datos que se almacena en el servidor se нечитабельными ni el proveedor de alojamiento web, ni de la "máscara de diapositivas". La captura?


Ajex 2010-10-15 14:06:11

Bueno, en general yo le describió el algoritmo de trabajo. Tienes que elegir el algoritmo de cifrado y de todas las cosas. Si el cifrado se producirá en el lado del cliente, es probable que resulte más fácil la tarea debido a la falta de necesidad de armonizar las funciones de cifrado.
Al enviar en mi código a sustituir $.ajax $.post allí con opciones similares y se agrega una función function my_encode(data,key), que se codifican los datos antes de enviarlos.
De los algoritmos se puede tomar блюфиш, si se cifra/descifra va a suceder en el lado del cliente, con la velocidad va todo ok
Bueno, de nuevo, si tienes miedo de hosting y los datos son tan importantes, mejor por supuesto para usar su propio servidor dedicado en algún lugar en la lejana alemania. Si lo desea, puede encontrar a un precio no fuerte distinta a la de la media de taranis. Y ni qué máscaras espectáculo que no tengan miedo.


FeNUMe 2010-10-15 04:00:47

no entiendo en que la complejidad. elige криптостойкий el algoritmo de cifrado(en el ideal ya реализованый en js), antes de enviar los datos — шифруете este algoritmo con la llave. así, en la base se encuentran con la vista de la basura... bueno y la acción inversa — el ajax consulta infi con el servidor descifra introducido la llave, la salida de la página. Pero creo que si cifrar cada campo de datos por separado — es demasiado lento, es mejor guardar todos los bloques de los datos que se muestran juntos.

flom 2010-10-15 09:33:17

Ningún problema — simplemente el análisis antes de la invención de la bicicleta.


flom 2010-10-15 09:34:50

Aún aquí que el pensamiento. En forma abierta, deben existir las llaves (para no complicar el trabajo de músculo) y los campos que se utilizan las condiciones de las muestras. Pero aquí surge el problema. Sobre algunos de los campos, el sistema hace que autocomplete (en el proceso de escribir el texto en el campo de la afc se suben las coincidencias de la base). De ello se negará o utilizar un algoritmo que криптует carácter en carácter. Pero, probablemente, estos algoritmos no demasiado seguros.

VolCh 2010-10-15 12:41:28

Hago así (reviso el concepto que hasta ahora sólo):
las llaves, los campos de búsqueda/filtro se almacenan en forma de md5 hash, más un campo en el que se almacena cifrada un objeto serializado (incluyendo los campos, por supuesto, que захэшированы) — para las condiciones de = != en la cláusula WHERE o JOIN funciona correctamente

Se encontró con problemas cuando se trabaja con ordenadas los valores de:
-búsqueda > < BEETWEEN, etc.,
-ordenar
-y también автокомплит (de hecho LIKE)

Todos los problemas se relacionan con el hecho de que todo, en mi humilde opinión, por algo el soporte de cifrado/hash no debería guardar el orden. Hasta que decidió por lo костылем: además de los campos ordenados, introdujo un campo numérico %property_name%_order, para las condiciones de tipo de expired<today busco primero expired_order para expired_hash==md5(today), luego selecciono las que menos. Inmediatamente ha salido la falta de un enfoque de trabajo sólo es posible para los conjuntos sin omisiones (o más bien para los conjuntos, donde existen los valores de los límites de búsqueda), como evitar en el lado del servidor para el cliente hizo sólo una solicitud de búsqueda) aún no se ha inventado. Bueno, y de la inserción/mover bastante larga y tediosa — se actualiza la mayor parte de la tabla

Preguntas relacionadas:

Footer decor

© www.state-it.info | Base of answers to questions for developers and programmers.