Cómo ofuscar una identificación de pedido de carrito de compras

Interesante.

El significado de “ofuscar” depende completamente de su pregunta. Por ejemplo, si tiene la siguiente URL:

http://example.com/go/cart/

El puede ser un GUID, que, de hecho, está ofuscado.

El siguiente escenario (anáfora 😀) puede ser cuando desea que el usuario vaya a

http://example.com/go/process

para procesar el pedido, pero no desea mostrar nada en la URL; puede lograr esto estableciendo un $ _SESSION [‘crt_id’] y luego recuperándolo en la página en / go / process .

Envíame un mensaje si necesitas ayuda para implementar esto.

– EDITAR –

Perdón por esa impetuosa respuesta.

Ahora, no está muy claro lo que quieres lograr; Quiero decir, ¿cómo puede una marca competitiva obtener información sobre el pedido aumentando / disminuyendo el número? En caso de que piense que, digamos, la siguiente URL le da un recibo:

http://example.com/go/recepit/20140512-10395

y para obtener un recibo diferente, el “competidor” cambia la identificación y luego recopila la información; es ese el caso?

Si ese es el caso, puede usar los GUID, el problema es que apestan cuando se trata de facilidad de uso. Puede elegir cualquiera: i) Facilidad de uso, o ii) Tasa de colisión.

Los GUID tienen una increíble tasa de colisión. Generalmente NO chocan y es por eso que IPv6 lo usa.

Algunos sitios de compras que he probado en realidad combinan su identificación de pedido en una cadena larga, lo que viola una de sus restricciones.

Una de las posibles soluciones es combinar varias claves como la identificación de compra con la identificación de pedido individual como una de ellas.

Por ejemplo: puede convertir la fecha de unión, pocos caracteres del hash del correo electrónico del usuario, sal aleatoria y el incremento del número de su compra mensual en la identificación del pedido.

El resultado se verá más o menos así:
0302.4ea.9a5.001

De acuerdo, eso parece aleatorio. Pero para un usuario que regresa, los únicos cambios serán la tercera parte. Los dos primeros son constantes y el último es incremental.

La posible colisión está en los dos primeros, pero puede crear un script para evitarlo. Y si usa hexa, eso es 36 ^ n , donde n es la longitud de su segunda parte, para cada día calendario. Si mi cálculo es correcto, con 3 caracteres puede tener hasta 4600 nuevos usuarios todos los días durante 10 años sin problemas.

Ahora que lo pienso, también puede reemplazar la parte de sal con el mes de compra o eliminarla por completo. De cualquier manera, el comprador solo sabrá su propio número de compra. No hay información sobre su transacción total, incluso el número de su usuario.

Espero que esto ayude.

Creo que puede tener 11 dígitos de caracteres Base64 aleatorios, que son seguros para url. tiene [matemática] 10 ^ {19} [/ matemática] salida posible, y tendrá una probabilidad de colisión del 0.1% en [matemática] 10 ^ 8 [/ matemática]
Ataque de cumpleaños

para ser estricto, 8 dígitos de caracteres aleatorios Base62 (A-Za-z0-9), pueden ser suficientes [math] 10 ^ 6 [/ math] entradas. Pero es demasiado limítrofe para mí.

para seguridad adicional, es posible que desee agregar un índice y una restricción única sobre ese atributo en su tabla, si su base de datos lo admite.

¿Por qué dar un número de pedido hasta que se complete el proceso de pago? No es relevante hasta que se compre el pedido. Luego, se puede enviar una identificación de pedido razonable por correo electrónico

More Interesting

Soy desarrollador de aplicaciones web Java. Ahora voy a trabajar en el proyecto de desarrollo de SalesForce. ¿Afectará mi carrera?

Estoy planeando crear un sitio web que tenga más información sobre paquetes de viaje. ¿Debo ir por Ruby on Rails o WordPress?

Cómo encontrar un desarrollador para un proyecto

Me estoy acercando para sentirme lo suficientemente cómodo como para crear una aplicación en Java (de una clase universitaria). Pero lo que realmente quiero construir es una aplicación web, ¿qué me recomendarías aprender o comenzar a trabajar a continuación (con Java obviamente)? ¿Primavera?

¿Cómo debo conseguir mi próximo trabajo de consultoría?

Cómo agregar un cuadro similar a Facebook a mi sitio web en Blogger

Acabo de comprar un tema de WordPress para mi sitio, pero parece que no puedo hacer que se vea como lo que vi en la demostración. ¿Todos los temas son tan difíciles de armar?

Como desarrollador de Android, ¿qué tipo de aplicaciones debo desarrollar?

Soy un desarrollador con una idea para una aplicación web, ¿cómo puedo decidir si vale la pena buscarla?

Mi fila en Bootstrap no funciona como debería, y mis sesiones tampoco funcionan como deberían. ¿Que puedo hacer?

¿Necesito construir una aplicación Hybird? ¿JQuery Mobile todavía se considera una buena opción para eso?

He seleccionado un tema de WordPress receptivo que no funciona en dispositivos móviles. ¿Hay alguna forma de activarlo?

Necesito construir una aplicación web muy simple. ¿Todavía necesito un marco?

Estoy planeando lanzar un sitio web que contenga contenido que me gustaría no ser copiado y utilizado por otros para uso comercial. ¿Qué pasos hay que tomar?

Construí una API de back-end y quiero mostrarla en GitHub. ¿Qué información debe contener mi archivo Léame y qué estructura debe tener?