URL中允许携带sessionid带来的安全隐患。
很多WEB开发语言为了防止浏览器禁止了cookie而无法识别用户,允许在URL中携带sessionid,这样虽然方便,但却有可能引起钓鱼的安全漏洞。
图示:
下图是从测试组发来的安全报告中剪出来的,图有些小问题,本来想重画1个,在visio中没找到合适的图。所以只能用别人的图了。
说明:
让我们对上图的步骤进行详细说明:
1. 黑客用自己的帐号登录,假设登录页面是:http://www.abc.com/login.jsp
2. 服务器返回登录成功。
3. 黑客从cookie中查看自己的sessionid,比如是1234
4. 黑客把带自己sessionid的地址发送给一般用户。http://www.abc.com/login.jsp;jsessionid=1234(不同的语言带sessionid的方式不一样,着是jsp的方式)
5. 用户在黑客给的地址中用自己的帐号进行登录,登录成功。(这个时候用户登录的信息就会覆盖黑客之前的登录信息,而且2个人用的是同1个sessionid) 6. 黑客刷新页面,看到的账户信息就是用户的信息了,而不是之前黑客自己帐号的信息。
防治:
要防止这种问题,其实也很简单,只要在用户登录时重置session(session.invalidate()方法),然后把登录信息保存到新的session中。
后语:
可能你跟我一样,刚开始看到这个时候,就自己去测试到底能不能钓鱼成功,经过我的测试是可以成功的,但测试过程中需要注意下面几个问题:
1. 要注意你使用的语言是如何在URL中带sessionid。(我测试的时候开始在URL中使用大写的jsessionid,导致一直不起效)
2. 要http://www.abc.com/login.jsp;jsessionid=1234页面登录表单的action也带上了jsessionid,不然也没用。对于这个问题你可能觉得如果login.jsp表单的action是写死,而不是读取当前URL的, 可能就不会出现这个钓鱼问题。这只能防住1个方向。黑客可以做1个和login.jsp一模一样的页面(比如http://www.abc1.com/login.jsp),然后把这个地址发个客户,而这个地址中的表单这样写就可以: <form action="http://www.abc.com/login.jsp;jsessionid=1234" ....
URL中允许携带sessionid带来的安全隐患。相关推荐
- 解决shiro重定向URL中出现sessionID的情况localhost:8080/toLogin;jsessionid=D5C1EE61B97EE2D7098F58A837B82BD4
先直接说解决办法: 直接在shiro配置类中添加一下代码就能解决: @Configuration public class MyShiroConfig {/*** 解决shiro的URL中出现sess ...
- url中携带中文乱码问题
1.问题描述 在项目中碰见url中经常传递中文参数时,容易出现乱码问题,现在就这个问题产生原因和解决的措施大概分析一下,希望过路人和我能引以为戒. 2.问题分析 由于我们利用URL传递参数这种方式是依 ...
- 支付宝支付同步回调url中携带参数的两种方法
我的个人博客:逐步前行STEP 1. 如果要传递的参数是my_data,可以先将该参数添加到回调的url上: $return_url = "http://abcdefg.com/return ...
- URL 中,查询字符串与HTML实体冲突,可能带来的问题.
此问题相关信息(我不放在最前面,似乎有些朋友会找不到的样子.) IE10+, Safari5.17+, Firefox4.0+,Opera12+, Chrome7+ 已经按新标准实现. 所以就没有这个 ...
- jdbc mysql参数_Mysql JDBC URL中的重要参数有啊些
以下的文章主要介绍的是Mysql JDBC URL中几个比较重要参数的详细说明,我们大家都知道MySQL数据库中存在JDBC URL几个比较重要参数,此文还将对其具体实例进行介绍,希望大家通过本文能得 ...
- JS获取URL中GET的参数
对于 URL,我们需要了解更多,因为我们的开发中可能会需要提取URL的部分信息来做不同的事情,事实上这也是与后端交互的一种独特的方式,当然这肯定是安全的,当请求被返回,关于 url 的信息就被记录在了 ...
- url get参数 php,怎么取得Url中Get参数
这次给大家带来怎么取得Url中Get参数,取得Url中Get参数的注意事项有哪些,下面就是实战案例,一起来看一下. 此时可以使用js的方式得到当前页面的url中的get参数. 核心语句是:window ...
- vue取url路径传参_vue不通过路由直接获取url中参数的方法示例
前言 众所周知vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接在url后面拼接?mid=100的方 ...
- url中的jsessionid解释
(1) 这是一个保险措施 因为Session默认是需要Cookie支持的 但有些客户浏览器是关闭Cookie的 这个时候就需要在URL中指定服务器上的session标识,也就是5F4771183 ...
最新文章
- 在layui中使用ajax传值给后台,浅谈layui 数据表格前后台传值的问题
- js 获取样式兼容方法
- mobx使用数组提示越界_向Mobx可观察数组添加操作
- git 清空log_[译] 我个人的 Git 技巧备忘录
- storm入门——本地模式helloworld
- Python ORM框架之 Peewee入门
- .NET Core 出得云端入得本地,微软让跨平台应用勇敢表达
- 2017蓝桥杯省赛---java---C---9(青蛙跳杯子)
- Java中如何获取字符串的Unicode编码
- java final char_java基本数据类型总结 类型转换 final关键字的用法
- Django搭建个人博客:文章标签功能
- 常人不解朱啸虎,读懂已是被裁人
- 浙江大学的”程序设计入门-C语言课程“截图
- winform combobox 单机不关闭_单机脉冲除尘器铜仁单机脉冲除尘器参数
- Spring Cloud随记----分布式配置中心再探---消息总线的引入
- Live reload
- xshell堡垒机_XShell运维工具之跳板机配置
- python 元组拆包_Python笔记004-元组的拆包和命名元组
- layui table表格中加input 日期插件
- 操作系统的概念、功能和目标(操作系统1)