文档章节

表单数据的加密传输

chaun
 chaun
发布于 2015/10/19 23:24
字数 1216
阅读 120
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

 一、表单数据的提交方式选择

       常用的与服务器进行的交互方式是GET和POST(关于两者的区别此处有详细的介绍),而一般在表单的数据提交中,都会选择POST方式,因为使用GET方法数据是通过URL传递的,在地址栏中会直接看到传递的数据,这样就缺少安全性。而使用POST传递时,是把提交的数据放置在HTTP包的包体中,地址栏不会看到数据。但是这样处理就能确保提交数据的安全性吗?

 

 

二、web数据传递的不安全性

        客户要浏览web网页,都是先连接web服务器,请求该网页文件,下载到本地再由浏览器解释执行最终看到丰富多彩的网页。http协议的这种工作模式,决定了web数据面向客户是开放的,实际http包在网络中也是通过明文传递的,通过一些抓包软件很容易捕捉到http包,自然也能得到用户提交的web数据。如右图是用wireshark抓到人人网登录时传递的数据包,从捕获的数据包中可以发现使用的是post方法提交数据,但从http包的包体中很容易找到提交的账号及密码,这样用户的信息在网络上进行传递时很容易被窃取。

三、用RSA加密web数据

      为了提高web数据传递的安全性,故在数据在网络上进行传递之前必须进行加密处理,如使用https进行web数据的完全加密传输,但是因为https是对所有的数据进行加密这样就影响了网页的浏览速率,况且有时只需对关键数据进行加密保护。这时就需要一些小规模的数据加密传输解决方法,此文提供了一种用RSA加密算法加密web数据,具体是在客户端用js脚本使用公钥加密数据,再在服务器端用PHP脚本程序使用私钥解密数据。在这为什么要使用非对称的加密算法RSA,为什么不使用加解密效率更快的对称加密算法如AES,DES,我个人认为是因为对称加密算法加密和解密使用的是同一密钥,而web文件都是下载到本地再解释执行的,这样再客户端的加密脚本程序很容易被用户看到同时也容易泄漏密钥,使用对称加密算法加密的数据也就丧失了安全性,但是使用非对称加密算法,只有私钥能解密出公钥加密的数据,所以只要确保私钥的保密性,就能确保经过公钥加密数据的安全性。

四、完善的加密传输方法

      如果使用RSA加密传输web数据,每次会话使用的都是同一密钥对,则可能存在非法用户冒充攻击,非法用户截获到用户向服务器提交的数据,虽是加密后的数据,但非法用户仍然可以直接向服务器POST截获到的加密后的数据,服务器端一但解密验证通过,则非法用户达到冒充合法用户的目的。这就是因为每次会话使用的是同一密钥,使每次登陆时提交的用户数据都是一样的,即使被加密,加密后的数据也是一样的,从而存在非法用户冒充合法用户的可能。解决这个问题的一个好的方法是没次会话使用不同的密钥对,这样即使非法用户再次提交加密后的数据,由于两次会话使用的是不同的密钥对,使得提交的数据在服务器端不能正确解密,从而验证出错。在用户登录时的具体实现是用户在提交数据前客户端先异步请求服务端生成本次会话密钥,并向客户端返回公钥,客户端再用公钥加密数据提交给服务端,服务端用私钥解密验证完后注销此次会话密钥。这样就确保用本次会话公钥加密的数据再次被提交到服务器端时服务端因使用的不是与之配对的私钥,不能解密出正确的数据从而验证失败,有效地避免了非法用户的冒充攻击。

版权声明:本文为博主原创文章,未经博主允许不得转载。

chaun
粉丝 92
博文 271
码字总数 91117
作品 0
深圳
高级程序员
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
6K
8
表单验证插件--Jquery表单验证插件

目前支持对以下格式的值进行验证: cnum-(纯数字), char-(纯字母), zwen-(中文), bysc-(字母开头), mail(邮箱), yzbm(邮政编码) 其中的‘’表示长度,比如“zwen1-5”表示中文1-5位的长度。同...

huanganiu
2013/01/23
4.4K
0
XLSX读写库--EPPlus

EPPlus 是使用Open Office XML格式(xlsx)读写Excel 2007 / 2010文件的.net开发库。 EPPlus 支持: 单元格范围 单元格样式(Border, Color, Fill, Font, Number, Alignments) Charts 图片 形状...

匿名
2013/02/01
1W
2

没有更多内容

加载失败,请刷新页面

加载更多

认识Node

什么是Node? Node 是 JavaScript 的一种运行环境。可以使 JS 代码不依赖浏览器也可以执行。他俩的差异如下: 两个运行环境都包含了 ECMScript 。另一方面 JavaScript 包含了 BOM 和 DOM。 ...

长臂猿猴
15分钟前
13
0
正则表达式中的非捕获组是什么? - What is a non-capturing group in regular expressions?

问题: 非捕获组(即(?:) )如何在正则表达式中使用,它们有什么用? 解决方案: 参考一: https://stackoom.com/question/Ejkl/正则表达式中的非捕获组是什么 参考二: https://oldbug.net...

技术盛宴
16分钟前
6
0
他在国外演讲时说,学Python只要看答案做完这几十道题,就足够了

你想学Python?其实很简单,因为Python本身就是一门比较简单的编程语言。 你要做的也就是看着答案做完这几十道题就可以了,不管你是不是有编程基础,因为答案摆在那儿,你不可能不会做。 为什...

python小天
16分钟前
0
0
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制

0 复习 代理模式 代理模式,可以为目标类添加额外功能。 Spring 动态代理 定义目标类对象 定义额外功能,增强。实现Spring内置的接口 配置增强类 定义切入点 编织组装 增强类型 前置增强 Me...

鹿老师的Java笔记
35分钟前
21
0
OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
53分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部