我们知道,在aso,net中两个页面中传值,可以用querystring的方法,可是用它并不安全,稍有不慎,会把传送的信息参数的值完全暴露在URL上,多么可怕啊!
<wbr></wbr>
方法一:把表单提交方式改为post
get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。
post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
<wbr></wbr>
<wbr></wbr>
方法二:代码加密:
1.发送方加密。
Response.Redirect("DetailInfo.aspx?id=" + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes("sp10006")).Replace("+","% 2B"));
(中间无空格)
2.接收方解密。
string ID = System.Text.Encoding.Default.GetString(Convert.FromBase64String(Request.QueryString["id"].ToString().Replace("+","% 2B")));
<wbr></wbr>
<wbr></wbr>
在使用 System.Convert.FromBase64String<wbr><wbr>解密时会报异常:Base-64 字符数组的无效长度<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr></wbr></wbr>
原理:
加密字符串中的加好“+”在传参时会变成空格“ ”,所以在解密时字符串就无效了
例如:
<wbr><wbr><wbr><wbr> 加密字符串:dN8b8FHDK6lEz2uneeUZk+O/rrHBzaWT</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> 传参后变成:dN8b8FHDK6lEz2uneeUZk O/rrHBzaWT</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> 解密时:不能识别空格:抛FormatException异常</wbr></wbr></wbr></wbr>
<wbr></wbr>
<wbr></wbr>
<wbr></wbr>
解决方案:
在Convert.ToBase64String()<wbr><wbr>加密后<wbr><wbr> 使用String.Replace("+", "% 2B")将<strong><span style="color:#ed1c24; font-size:20px">加号替换为编码,</span></strong></wbr></wbr></wbr></wbr>
然后再作为参数传给另一页面传递,这样页面在提取参数时才会将“+”解码为加号
例如:
<wbr><wbr><wbr><wbr> 加密字符串:dN8b8FHDK6lEz2uneeUZk+O/rrHBzaWT</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> 替换后:dN8b8FHDK6lEz2uneeUZk+O/rrHBzaWT</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> 传参后也是:dN8b8FHDK6lEz2uneeUZk+O/rrHBzaWT</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> 解密时:程序把"+"识别为加号<wbr><wbr> 解密成功</wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
相关推荐
3. **参数提取与加密**:从QueryString中提取需要加密的参数,然后使用选择的加密算法进行加密。加密过程应该包括填充、初始化向量(IV)等步骤,以增强安全性。 4. **结果编码**:加密后的结果通常包含二进制数据...
在 ASP.NET 中,可以使用多种方法来传递变量,例如使用 QueryString、Session 变量、Server.Transfer 等方法。这些方法可以根据实际需求选择合适的方法。 八、浏览器地址栏传值 在使用浏览器地址栏传值时,需要...
#### 三、加密解密 - **DotNet密码加密技术**: - **MD5加密**: - 优点:计算速度快。 - 缺点:不可逆,不适合用于需要解密的场景。 - **AES加密**: - 优点:支持加密和解密,安全性高。 - 缺点:相比MD5...
7. **加密与解密**:ASP.NET提供了加密解密的类库,如System.Security.Cryptography,可用于保护敏感数据。 8. **QueryString管理**:可以方便地读取和操作URL中的查询字符串参数。 9. **验证控件**:ASP.NET包含...
- 加密和解密,如使用ASP.NET的机器密钥 - 防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF) 8. **第八章:状态管理** - Application状态、Session状态、Cookie和Viewstate的使用场景 - TempData和QueryString的...
在ASP.NET中,有两种主要方法实现页面重定向:`Response.Redirect()`和`Server.Transfer()`。`Response.Redirect("Default2.aspx")`会告诉浏览器去请求一个新的URL("Default2.aspx"),客户端会看到一个新的HTTP...
加密解密 - **加密**: - **定义**: 将明文数据转换为密文的过程。 - **常见算法**: MD5、SHA、AES等。 - **解密**: - **定义**: 将密文数据还原为明文的过程。 - **依赖**: 加密使用的密钥或算法。 #### 5. ...
6. **安全性**:身份验证、授权、加密解密、防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全措施。 7. **AJAX技术**:利用UpdatePanel、jQuery AJAX或ASP.NET AJAX进行异步更新,提升用户体验。 8. **部署与...
在.NET框架中,C#是一种广泛使用的编程语言,尤其在Web开发领域,它与ASP.NET框架结合,提供了强大的功能和便利性。标题提到的"C# Web常用工具类、asp.net常用类"指的是开发者们在构建Web应用程序时经常会用到的一些...
在"网址加密解密"这个文件中,可能包含了实现这些功能的ASP源代码。这个文件应该包含加密URL的函数和解密URL的函数。加密函数可能会接收原始URL,进行编码和加密,然后返回加密后的URL字符串。解密函数则会接收加密...
根据提供的文件信息,以下是对提及的...以上内容涵盖了.NET中的一些常用技术点,包括页面间传参、数据库操作、加密解密、DataGrid控件使用以及其他实用功能。这些技术对于开发高质量、安全可靠的.NET应用程序至关重要。
这些组件可以是Microsoft提供的,也可以是第三方开发的,它们提供了更丰富的功能,如邮件发送、数据库连接、加密解密等。 学习ASP的过程中,理解如何通过URL传递变量以及在ASP页面中如何接收和处理这些变量是基础...
通过注册VBDLL到服务器,然后在ASP页面中引用,就可以调用其中的方法和属性,实现更复杂的功能,比如数据库操作、加密解密、文件处理等。 在实际应用中,开发人员可能会编写一个VBDLL来处理特定的业务逻辑,例如...
5. **服务器端组件**:ASP支持多种服务器端组件,如`Server.CreateObject`可以实例化COM组件,用于扩展功能,比如发送邮件、加密解密等。在天气查询系统中,可能使用了某种组件来处理特定任务。 6. **错误处理**:...
88 <br>0136 如何进行文本加密与解密 88 <br>0137 如何区别0、空字符串、Null、Empty和Nothing 89 <br>0138 从字符串中分离文件路径、文件名及扩展名 89 <br>0139 如何批量替换某一类字符串 89...
* 不要在Cookie中保存没有经过加密的或者容易被解密的敏感信息 * 对从客户端取得的Cookie信息进行严格校验 * 记录非法的Cookie信息进行分析,并根据这些信息对系统进行攻击 * 使用SSL/TLS来传递Cookie信息 * 指明...