如何在URL中传递加密的参数?

believe_me 2012-07-11 01:31:14
我用MFC做了连个界面,一个是登录界面,一个是主界面,主界面里面嵌入的internet explore server.需要通过登录界面登录成功才能进入主界面。
我希望通过点击主界面中ie server 的链接跳转到默认的浏览器后,能够带入登录成功的用户名和密码,也就是cookie信息。
初步的想法是在URL中带入用户名和密码信息,比如www.test.com/main.html?user=111&psw=222,但是对于参数的加密又不确定用哪种解密方法能够适用于URL。
在此请教各位了,采用哪种加密方法,或者有没有更好的方式来解决。
===================================================
本来该贴是发在C++区的,不过我想这个问题从web server的角度来考虑的话也可以的。
希望大家不吝赐教。
...全文
12956 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldq67123 2012-07-12
  • 打赏
  • 举报
回复
要是你在服务端存储的密码是MD5的,直接在客户端MD5后再传就行了
要是明文存储的,当我没说
believe_me 2012-07-12
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]

post可以吧,已用了url加密的,
[/Quote]
我的意思就是,让用户无法从URL中看到用户的密码信息
zgycsmb 2012-07-12
  • 打赏
  • 举报
回复
post可以吧,已用了url加密的,
雨泽 2012-07-12
  • 打赏
  • 举报
回复
写客户端浏览器插件
ArayChou 2012-07-12
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 的回复:]
我看了一下,通过点击QQ上面的邮箱图标,会首先访问如下的链接:
ptlogin2.qq.com/qqmail?Fun=clientread&ADUIN=88888888&ADSESSION=iii&ADTAG=jjj&clientuin=88888888&clientkey=4893D7061A0E95AFFDDF777F714B1D63CAD95C0E9CAD7A972236C752E3B1422E&ptlang=2052&httptype=0&ADUIN=88888888&ADSESSION=1341988549&ADTAG=CLIENT.QQ.4675_Mysrv.0
然后跳转到邮箱界面,并直接登录进入QQ邮箱。
我想请教大侠们,这样一个链接的含义和实现方法。[/Quote]

这就是我说的那个方法阿,在服务器随机生成一个一次性的"通行证",4893D7061A0E95AFFDDF777F714B1D63CAD95C0E9CAD7A972236C752E3B1422这个东西因伽就是这个通信证,这个通信证和一个用户关联,你之哟啊出示通信证,就知道你是哪一个用户.不需要再次输入用户名密码登陆
ArayChou 2012-07-12
  • 打赏
  • 举报
回复
哦,我去搜索了一下,明白了中间人攻击的意思. 这个只有给每个用户发一个数字证书,试用https了
ArayChou 2012-07-12
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

QQ 的这个没法防范中间人攻击,呵呵。
[/Quote]

请问中间人攻击时什么意思?
believe_me 2012-07-11
  • 打赏
  • 举报
回复
其中88888888为QQ号。
believe_me 2012-07-11
  • 打赏
  • 举报
回复
我看了一下,通过点击QQ上面的邮箱图标,会首先访问如下的链接:
ptlogin2.qq.com/qqmail?Fun=clientread&ADUIN=88888888&ADSESSION=iii&ADTAG=jjj&clientuin=88888888&clientkey=4893D7061A0E95AFFDDF777F714B1D63CAD95C0E9CAD7A972236C752E3B1422E&ptlang=2052&httptype=0&ADUIN=88888888&ADSESSION=1341988549&ADTAG=CLIENT.QQ.4675_Mysrv.0
然后跳转到邮箱界面,并直接登录进入QQ邮箱。
我想请教大侠们,这样一个链接的含义和实现方法。
believe_me 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

要先看加密的目的是什么后才有解决方案!
[/Quote]
主要目的就是为了能够直接通过URL的参数告诉web server当前用户已经登录的信息,然后浏览器可以直接导入和显示用户的信息。
  • 打赏
  • 举报
回复
QQ 的这个没法防范中间人攻击,呵呵。
ArayChou 2012-07-11
  • 打赏
  • 举报
回复
我想了一下,这个方法的弱点是,别有用心的人可能会窃取到这个ID. 大幅减少这个风险也是有办法的.就是让生成这个Id和使用这个ID的时间仅可能的短. 有办法让用户点击的时候才生成ID,生成了马上使用,服务器端也限制一个ID的生命周期为3秒.

在加一个事后追查机制,同一个ID如果被使用2次,记录日志,并且让这个ID的有效登陆也变成无效,同时提醒用户修改密码


我的语文老师估计杀我的心都有了
ArayChou 2012-07-11
  • 打赏
  • 举报
回复
我想了一下,这个方法的弱点是,别有用心的人可能和窃取到这个ID. 有个大幅减少这个风险也有办法.就是让生成这个Id和使用这个ID的时间仅可可能的短. 有办法让用户点击的时候才生成ID,生成了马山使用,服务器段也限制一个ID的生命周期为3秒.

在家一个时候追查机制,同一个ID如果被使用2次,记录日志


用拼音的同学伤不起啊
ArayChou 2012-07-11
  • 打赏
  • 举报
回复
我想了一下,这个方法的弱点是,别有用心的人可能和窃取到这个ID. 有个大幅减少这个风险也有办法.就是让声称这个Id和使用这个ID的实践仅可呢个的短. 有办法让用户点击的时候才生成ID,生成了马山使用,服务器段也限制一个ID的生民周期为3秒.

在家一个使后追查机制,同一个ID如果被使用2次,记录日志
ArayChou 2012-07-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
最安全是不可能的,这没法防止中间人攻击[/Quote]

这是能实现这个功能的办法中,最安全的了吧.
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

不需要把用户名密码写出来,写出来就不安全了,直接在url中写入sessionid也不安全

QQ这种做法是最安全的.相当于生成了一个只能使用一次的通行证, 例如在服务器随即生成一个数字,他对应一个用户名.然后用这个数字来生成一个登陆url. 例如 http://xxx/login?login_id=xxxxx
在login这个服务段的servlet判断xxxxx这个login_id是不是存……
[/Quote]

最安全是不可能的,这没法防止中间人攻击
ArayChou 2012-07-11
  • 打赏
  • 举报
回复
不需要把用户名密码写出来,写出来就不安全了,直接在url中写入sessionid也不安全

QQ这种做法是最安全的.相当于生成了一个只能使用一次的通行证, 例如在服务器随即生成一个数字,他对应一个用户名.然后用这个数字来生成一个登陆url. 例如 http://xxx/login?login_id=xxxxx
在login这个服务段的servlet判断xxxxx这个login_id是不是存在的,如果存在就读出用户信息让他登陆,同时让这个xxxxx失效

表达不清,请见谅
ArayChou 2012-07-11
  • 打赏
  • 举报
回复
或者使用在QQ中打开QQ空间的做法.
  • 打赏
  • 举报
回复
要先看加密的目的是什么后才有解决方案!
ArayChou 2012-07-11
  • 打赏
  • 举报
回复
楼上的post方法实现不了,搂主要求是点击一个连接,打开浏览器,这里好像智能用get方法.

B/S系统是使用cookie中的sessionId来标志会话的,搂住这种情况cookie用不了了.可在url中加入sessionId来接解决.大概像这种

http://www.xxx.com/xxxx.jsp;jsessionid=5AC6268DD8D4D5D1FDF5D41E9F2FD960?feld1=9&feld2=8

更多信息请看: http://www.google.com.hk/search?hl=zh-CN&q=url+jsessionid&lr=
加载更多回复(5)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧