文档章节

表单数据的加密传输

chaun
 chaun
发布于 2015/10/19 23:24
字数 1216
阅读 40
收藏 0
点赞 0
评论 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截获到的加密后的数据,服务器端一但解密验证通过,则非法用户达到冒充合法用户的目的。这就是因为每次会话使用的是同一密钥,使每次登陆时提交的用户数据都是一样的,即使被加密,加密后的数据也是一样的,从而存在非法用户冒充合法用户的可能。解决这个问题的一个好的方法是没次会话使用不同的密钥对,这样即使非法用户再次提交加密后的数据,由于两次会话使用的是不同的密钥对,使得提交的数据在服务器端不能正确解密,从而验证出错。在用户登录时的具体实现是用户在提交数据前客户端先异步请求服务端生成本次会话密钥,并向客户端返回公钥,客户端再用公钥加密数据提交给服务端,服务端用私钥解密验证完后注销此次会话密钥。这样就确保用本次会话公钥加密的数据再次被提交到服务器端时服务端因使用的不是与之配对的私钥,不能解密出正确的数据从而验证失败,有效地避免了非法用户的冒充攻击。

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

本文转载自:http://blog.csdn.net/lj_hero/article/details/5969871

共有 人打赏支持
chaun
粉丝 85
博文 262
码字总数 96237
作品 0
深圳
高级程序员
表单加密处理--jCryption

jCryption 在网页上使用 JavaScript 对将提交的表单数据进行 RSA 加密,提交到服务器后,在PHP中队数据进行解密,以保证数据在传输过程中的安全性。 在正常情况下,当提交数据时,如果没有S...

匿名 ⋅ 2010/03/09 ⋅ 1

表单数据的加密传输

一、表单数据的提交方式选择 常用的与服务器进行的交互方式是GET和POST(关于两者的区别此处有详细的介绍),而一般在表单的数据提交中,都会选择POST方式,因为使用GET方法数据是通过URL传递...

artshell ⋅ 2014/01/23 ⋅ 0

HTML 标签的 method 属性

实例 在下面的例子中,表单数据将通过 method 属性附加到 URL 上: <form action="form_action.asp" method="get"> <p>First name: <input type="text" name="fname" /></p> <p>Last name: <......

Amamatthew ⋅ 2014/09/18 ⋅ 0

分享如何使用PHP将URL地址参数进行加密传输提高网站安全性

大家在使用PHP进行GET或POST提交数据时,经常会在URL带着参数进行传递,比如www.mdaima.com/get.php?id=1&page=5,这里就将id编号和page页码进行了参数传递,如果这样直接明文传输,会将参数...

james_laughing ⋅ 2016/10/28 ⋅ 0

VC++网络安全编程范例(9)-基于OPENSSL实现对称算法与BASE64编码

对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者...

junwong ⋅ 2012/03/09 ⋅ 0

Java Web基础知识之安全:人生苦短,注意安全

关于web程序中的安全方面,想必大多数人都不甚了解,或者说感觉没有必要了解,身边开发网站的人主要就是注重后台的功能和前台的界面,不要说程序的安全问题,甚至后台数据库访问的问题可能都...

lmy86263 ⋅ 2016/06/02 ⋅ 0

基于 Node.js 的 Web 开发框架--CaiTouNode

CaiTouNode 是一个基于 Node.js 的 Web 开发框架。轻量,简洁,易用是它的特点。 主要功能: 配置设置支持多重继承 在配置文件中定义视图参数 设置默认视图文件名 支持错误处理 控制器的多重...

caomeidie ⋅ 2017/09/12 ⋅ 0

Api接口加密策略

接口安全要求: 1.防伪装攻击(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口) 2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改) 3.防重放...

⋅ 2017/12/18 ⋅ 0

预防XSS思路一则

XSS如果截取了后台会话信息,一般这个IP是没有登录信息的,可以通过每次使用权限时比照最近的登录IP来限制访问。 所以: 1.对每个登录行为记录IP(帐号要分开,不能共用) 2.每次登录有时长,...

swingcoder ⋅ 2016/05/21 ⋅ 0

MySQL 的 23 条安全注意事项

1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就需要使用SSH隧道来加密该连接的通信。 2.用set password语句来修改用户的密码,三个步骤 “先mysql -u root登陆数据库系统...

红薯 ⋅ 2009/10/15 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vuex学习

1、getters基本用法: 在store.js里面用const声明我们的getters属性。 const getters={ count:function (state) { return state.count +=100; }} export default new Vuex.S......

大美琴 ⋅ 42分钟前 ⋅ 0

292. Nim Game - LeetCode

Question 292. Nim Game Solution 思路:试着列举一下,就能发现一个n只要不是4的倍数,就能赢。 n 是否能赢1 true2 true3 true4 false 不论删除几,对方都能一把赢5 t...

yysue ⋅ 54分钟前 ⋅ 0

G6 关系数据可视化图形库 简单使用

官网 https://antv.alipay.com/zh-cn/g6/1.x/index.html 效果 首先生成给定数目的小球,并设置随机的颜色 按照顺序,设置小球的角度以及坐标 设置定时器,每隔一定的时间修改小球的角度和坐标...

阿豪boy ⋅ 56分钟前 ⋅ 0

6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩

zip压缩工具 zip命令可以压缩目录和文件,-r 压缩目录。 zip使用方法 zip 1.txt.zip 1.txt //压缩文件 zip -r 123.zip 123/ //压缩目录 unzip 1.txt.zip //解压 unzip 123.zip -d /root/456...

Linux_老吴 ⋅ 今天 ⋅ 0

react-loadable使用跳坑

官方给react-loadable的定义是: A higher order component for loading components with dynamic imports. 动态路由示例 withLoadable.js import React from 'react'import Loadable fro......

pengqinmm ⋅ 今天 ⋅ 0

记录工作中遇到的坑

1、ios safari浏览器向下滚动会触发window resize事件

端木遗风 ⋅ 今天 ⋅ 0

桥接设计模式

1、概述: 将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化 如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构 桥接模式将继承模式转化成关联关系,他降...

职业搬砖20年 ⋅ 今天 ⋅ 0

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 今天 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 今天 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部