Pregunta

Estoy desarrollando una aplicación PHP para gestionar pedidos de una empresa. Para ver una orden de la URL es actualmente /orders/view/3502.

No quiero que el número de identificación de la orden que aparezca en la URL, por lo que utiliza la biblioteca de CodeIgniter cifrar cifrar el ID en la URL. La dirección URL (después de cifrado) se parece a /orders/view/AaffGdQQ.

El problema que estoy teniendo es a veces el ID de cifrado contiene una barra inclinada o un signo más, que no funcionan correctamente cuando en una dirección URL. CodeIgniter lee la URL basado en barras, de manera, si el ID de cifrado tenía una barra, se leería que, como 2 variables, no uno. También, además de señales se interpretan como espacios en direcciones URL.

Por lo tanto, mi pregunta es, ¿cómo puedo cifrar el ID y asegúrese de que la cadena no contiene un signo o una barra?

EDIT: yo tenía una idea para ver si el identificador encriptado contenía una barra o signo, y si lo hiciera, cifrarlo de nuevo. Por alguna razón, cada vez que el identificador está cifrado, es diferente, por lo que esto funcionaría.

¿Fue útil?

Solución

También puede base64_encode (). Esto también hará que sea mucho más tiempo y aparecerá "más seguro". También añade una capa de ofuscación.

Otros consejos

Tal vez pasar los datos a través cryped urlencode() sería solucionar este problema? Después de hacer eso, usted tendría que interceptar los datos antes de CodeIgniter hace, y correr urldecode() en él.

Sólo una idea rápida, así que buena suerte!

buscar algunos personajes que el cifrado no utiliza y reemplazarlos ya que encaja. Al utilizar direcciones URL, deshacerlo.

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