加密QueryString数据

加密|数据

Problem with Query String Method  
Often time we use query string collection to retrieve an unique record from a table. Notice the following
piece of code -

Detail.asp?RecordID=200

Here we are passing a query string value called "RecordID" using the url. We then use the Query String
collection "RecordID" to get the actual number -

<%
Dim RecordID
RecordID = Request.QueryString("RecordID")
%>

The problem with the above method is that we are exposing "RecordID" to the public. Hence making easy to
hackers to just change the RecordID Query string to retrieve other values of the table.

Solution to the above problem

In order to solve the above problem, we will use two ASP pages and the ASP random number function to
scramble the passing query string value so that the real record number is not exposed to others.

On the first page we get a random number with the following code -

<%
Randomize timer
' Randomizing the timer function
rndNum = abs(int((rnd() * 3001)))
' To generate a prime based,  non-negative random number..
rndNum = rndNum + 53
Session("rndNum") = rndNum
'We place the random number value in a session variable so that we can use it again in the next page %>

Now that we have our random number we will scramble our query string with it! Here is how -

<%
'Assuming you have a record set retrieved -
Display_Rs.movefirst
While not Display_Rs.Eof
Response.Write "<a href=detail.asp?RecordID="
Response.Write (Display_Rs("RecordID")*rndNum)
' Notice we are multiplying the actual record number with the random number to scramble the query 'string
Response.Write Display_Rs("RecordID") & "</a>"
Display_Rs.Movenext
Wend
%>

In the next page we will un-scramble the query string! Here is how -

<%
Dim RecordID
RecordID = request.querystring("RecordID")/Session("rndNum")
' We are dividing the record ID query string value with the same formula to un-scramble and pass the
actual record ID to the SQL statement
Session.abandon
' Releasing Session value for the next record
%>

That's it! Using the above method you can scramble a query string as much as you like. For example
multiply the random number with a very complex formula to generate an even more difficult integer number.
The key point here is you divide  the number with the same formula yielding to the original value. This
technique is not full proof but much more difficult to break in that passing a regular query string value.

时间: 2024-12-03 23:27:12

加密QueryString数据的相关文章

SQL SERVER2005加密解密数据

server|加密|解密|数据 讲述SQL Server 2005的数据加密功能和配置以及如何通过它实现对敏感数据的保护.   演示用的脚本提供给大家作为参考: -------------------------------------------------------------------------------- /*[课程]使用数据库加密保护敏感数据DEMO 1了解SQL2005加密层次结构[过程]过程一共分为4个部分*/--==================(I)服务主密钥====

三未信安:转型云加密服务商 让加密作为数据自身属性

乱世中,人人自危如何自保以安身立命,那时,练得一身好功夫尤为重要. 把这句话放在如今的企业信息安全体系中,加密就是那"一身功夫". 在企业整体安全体系中,防火墙.防病毒.入侵检测仍然大行其道,如果要问密码技术占有多大的分量,恐怕在很多人的眼中,它有点微不足道. 三未信安创始人兼CEO张岳公 但是,在此我们为什么如此强调加密,是因为在信息安全体系中它扮演的角色越来越重要,就如同拥有了一身功夫的人而拥有了防卫能力.在三未信安创始人兼CEO张岳公看来,加密应是数据自身的属性,它和防火墙等边界

c-请问,银联标准的MAC算法所加密的数据是十六进制类型的还是字符串类型的?

问题描述 请问,银联标准的MAC算法所加密的数据是十六进制类型的还是字符串类型的? 就是直接用解析好的数据串直接进行mac计算, 还是要把解析到的字符串先转成16进制再进行mac计算? 解决方案 看上去是字符串ascii 解决方案二: 一般都不会直接用字符串,对于设备数据协议等, 一般都是BYTE数组类型格式,所以你应该用16进制方式获取.

普遍加密和数据权限生态系统初步形成

 [WatchStor独家译文]多年以来,IT经理一直致力于确保数据在网络传输和保存到磁盘的过程中是经过加密的--不过是在数据中心.NAS或者在独立工作站中.为了更好地管理数据,一些企业尝试创建所谓的"信任区域"以不同等级的敏感性来处理数据. Spire Security研究总监Pete Lindstrom表示:"这些方法从长期角度来讲是不奏效的,因为数据是持续被用户访问.迁移和复制的." 当然,Lindstrom的意思并不是说用户不应该访问和使用企业数据,他认为,

用ASP.NET加密Cookie数据

Cookie确实在WEB应用方面为访问者和编程者都提供了方便,然而从安全方面考虑是有问题的,首先,Cookie数据包含在HTTP请求和响应的包头里透明地传递,也就是说聪明的人是能清清楚楚看到这些数据的.其次,Cookie数据以Cookie文件格式存储在浏览者计算机的cache目录里,其中就包含有关网页.密码和其他用户行为的信息,那么只要进入硬盘就能打开Cookie文件.图1是一个Cookie文件的内容: 如果你未曾留意你的机器里有Cookie文件,可以按下列方法查看:打开IE,选择"工具&quo

一个最简单的通过WireShark破解SSL加密网络数据包的方法

原文地址: http://article.yeeyan.org/view/530101/444688 一般来说,我们用WireShark来抓取包进行分析是没有多大问题的.但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策.在过去的话,如果我们拥有的该传输会话的私钥的话我们还是可以将它提供给WireShark来让其对这些加密数据包进行解密的   1. 简介     相信能访问到这篇文章的同行基本上都会用过流行的网络抓包工具WireShark,用它

数据备份安全战略:云安全、加密与数据销毁

2005年美国银行加密的磁带丢失,造成了 大量客户资料泄露,从此以后,数据安全性就一直受到人们的关注.在此之前,一部分银行的系统管理员认为磁带加密设备价格过于昂贵,有些管理员认为数据加密就跟保险一样,并不是 首先需要处理的事情,还有些管理员因为不知道应该购买备份软件还是购买安全软件而将此事搁浅.这次美国银行泄露客户数据违反了地方法律, 不过2005 Specter-Leahy 法律规定安全数据和客户个人资料盗窃可以构成联邦级别的犯罪.加利福尼亚州2003年SB-1386法律就开始对泄露数据做出了

加密用户数据文件

问题描述 我们有个小组,想写一个Windows7的用户智能卡登陆程序.就是拿智能卡存储的一个Id.输入的密码和数据文件中的账户信息进行比对么.之前折腾硬件部分,就把账户文件设成简单的明文的txt了.现在需要一种加密方法.让这个存放账户密码信息的文件不能明文读取,从外部修改.但是拥有最高管理员权限的用户,可以通过程序窗口,对其他账号密码信息进行修改.类似的比如QQ的聊天记录文件,直接看是加密的,登陆账号从聊天记录里查看,就是解密过的.想问一下这个文件的结构应该是怎么样的.应该应用怎样的机制.希望有

通过客户端加密保护数据

客户端加密是指用户数据在发送给远端服务器之前就完成加密,而加密所用的密钥的明文只保留在本地,从而可以保证用户数据安全,即使数据泄漏别人也无法解密得到原始数据. 本文介绍如何基于oss的现有python sdk版本, 通过客户端加密来保护数据. 原理介绍 用户本地维护一对rsa密钥(rsa_private_key和rsa_public_key) 每次上传object时,随机生成一个AES256类型的对称密钥data_key,然后用data_key加密原始content得到encrypt_conte