Encriptado de nuestros QueryString con ASP.NET (Fácilmente)

Encriptado de nuestros QueryString con ASP.NET (Fácilmente)

Hola que tal, no vamos a entrar en detalles en los temas de seguridad que pueden verse afectados al enviar parámetros desde una página a otra mediante el método GET. En donde podríamos tener:
http://www.misitio.com?idtran=12322&tipo=2&usuario=jsoto&priori=5

Obviamente podemos caer en problemas de seguridad al revelar información sensible en las url.

Componente TSHAK (Descargar este Componente)

Existe un componente muy interesante que hace el trabajo de encriptar las querystring de manera sencilla, solo necesitamos hacer referencia a la DLL descargada y un arreglo de bits. Veamos el código de la página “llamadora”

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim querystringSeguro As TSHAK.Components.SecureQueryString
querystringSeguro = New TSHAK.Components.SecureQueryString(New Byte() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 8})
'URL Original del ejemplo
'http://www.misitio.com?idtran=12322&tipo=2&usuario=jsoto&priori=5
querystringSeguro("idtran") = 12322
querystringSeguro("tipo") = 2
querystringSeguro("usuario") = "jsoto"
querystringSeguro("priori") = 5
Response.Redirect("pagina2.aspx?data=" + HttpUtility.UrlEncode(querystringSeguro.ToString()))
End Sub
Y en la página “llamada” ponemos el código (disculpen el poco orden del código, pero el formato del blog no ayuda mucho):

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim querystringSeguro As TSHAK.Components.SecureQueryString 'instanciamos el objeto y le pasamos como argumento el mismo array 'de bits mas el parámetro data, que viene de la llamada de la 'pagina default.aspx que contiene todo el queryString
querystringSeguro = New TSHAK.Components.SecureQueryString(New Byte() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 8}, Request("data"))
Try
'Obtenemos las variables que vienen dentro del querystringSeguro
Dim idtran As Integer = Integer.Parse(querystringSeguro("idtran"))
Dim tipo As Integer = Integer.Parse(querystringSeguro("tipo"))
Dim usuario As String = querystringSeguro("usuario").ToString
Dim priori As Integer = Integer.Parse(querystringSeguro("priori"))
lb_msg.Text = "idtran=" & idtran & " tipo=" & tipo & " usuario=" & usuario & " priori=" & priori
Catch ex As Exception
lb_msg.Text = "ERROR EN RECEPCIÓN DE PARAMETROS"
End Try
End Sub
El resultado final , gráficamente:



y la URL:

http://localhost:51254/querystring/pagina2.aspx?data=EAMsAeJK2BQ7JJuvxHz8rEOhJSo909WAFzClxAqn50JFC%2fsWLt6niWoQBDib2tdOXsXCgnDY5%2f%2bR13ZjQq2c333aXy6%2bQFq%2fu2XRJQMUPONg2VUg3az9KzOIGQVH2imTslJTmyvFwy6N0t7JoSaJIsvdQ2l%2bb5FN07ZtsfcvfMnTEUfz0%2fLAuon0Jvk1%2beoeucumgEQ5h1wYEXtlT%2fBoQfPR2ah8ojFGGPu3RR1mnqExNKh8HbFRYbGId0c15grKbw%3d%3d

Es un poco más complicado leer esto y adivinar los parámetros!
Espero que les sirva,
Saludos,

-Gonzalo



web del autor
http://geeks.ms/blogs/gperez/archive/2009/01/16/encriptado-de-nuestros-querystring-con-asp-net-f-225-cilmente.aspx

Comentarios

Entradas populares de este blog

Batch Tablas de Multiplicar

Sistema de tickets Gratis en php + Mysql