很多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带来的安全隐患。相关推荐

  1. 解决shiro重定向URL中出现sessionID的情况localhost:8080/toLogin;jsessionid=D5C1EE61B97EE2D7098F58A837B82BD4

    先直接说解决办法: 直接在shiro配置类中添加一下代码就能解决: @Configuration public class MyShiroConfig {/*** 解决shiro的URL中出现sess ...

  2. url中携带中文乱码问题

    1.问题描述 在项目中碰见url中经常传递中文参数时,容易出现乱码问题,现在就这个问题产生原因和解决的措施大概分析一下,希望过路人和我能引以为戒. 2.问题分析 由于我们利用URL传递参数这种方式是依 ...

  3. 支付宝支付同步回调url中携带参数的两种方法

    我的个人博客:逐步前行STEP 1. 如果要传递的参数是my_data,可以先将该参数添加到回调的url上: $return_url = "http://abcdefg.com/return ...

  4. URL 中,查询字符串与HTML实体冲突,可能带来的问题.

    此问题相关信息(我不放在最前面,似乎有些朋友会找不到的样子.) IE10+, Safari5.17+, Firefox4.0+,Opera12+, Chrome7+ 已经按新标准实现. 所以就没有这个 ...

  5. jdbc mysql参数_Mysql JDBC URL中的重要参数有啊些

    以下的文章主要介绍的是Mysql JDBC URL中几个比较重要参数的详细说明,我们大家都知道MySQL数据库中存在JDBC URL几个比较重要参数,此文还将对其具体实例进行介绍,希望大家通过本文能得 ...

  6. JS获取URL中GET的参数

    对于 URL,我们需要了解更多,因为我们的开发中可能会需要提取URL的部分信息来做不同的事情,事实上这也是与后端交互的一种独特的方式,当然这肯定是安全的,当请求被返回,关于 url 的信息就被记录在了 ...

  7. url get参数 php,怎么取得Url中Get参数

    这次给大家带来怎么取得Url中Get参数,取得Url中Get参数的注意事项有哪些,下面就是实战案例,一起来看一下. 此时可以使用js的方式得到当前页面的url中的get参数. 核心语句是:window ...

  8. vue取url路径传参_vue不通过路由直接获取url中参数的方法示例

    前言 众所周知vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接在url后面拼接?mid=100的方 ...

  9. url中的jsessionid解释

    (1) 这是一个保险措施  因为Session默认是需要Cookie支持的  但有些客户浏览器是关闭Cookie的  这个时候就需要在URL中指定服务器上的session标识,也就是5F4771183 ...

最新文章

  1. 在layui中使用ajax传值给后台,浅谈layui 数据表格前后台传值的问题
  2. js 获取样式兼容方法
  3. mobx使用数组提示越界_向Mobx可观察数组添加操作
  4. git 清空log_[译] 我个人的 Git 技巧备忘录
  5. storm入门——本地模式helloworld
  6. Python ORM框架之 Peewee入门
  7. .NET Core 出得云端入得本地,微软让跨平台应用勇敢表达
  8. 2017蓝桥杯省赛---java---C---9(青蛙跳杯子)
  9. Java中如何获取字符串的Unicode编码
  10. java final char_java基本数据类型总结 类型转换 final关键字的用法
  11. Django搭建个人博客:文章标签功能
  12. 常人不解朱啸虎,读懂已是被裁人
  13. 浙江大学的”程序设计入门-C语言课程“截图
  14. winform combobox 单机不关闭_单机脉冲除尘器铜仁单机脉冲除尘器参数
  15. Spring Cloud随记----分布式配置中心再探---消息总线的引入
  16. Live reload
  17. xshell堡垒机_XShell运维工具之跳板机配置
  18. python 元组拆包_Python笔记004-元组的拆包和命名元组
  19. layui table表格中加input 日期插件
  20. 操作系统的概念、功能和目标(操作系统1)

热门文章

  1. 通过 SSH 端口转发实现异地内网服务器互通
  2. 关于 underscore 中模板引擎的应用示例
  3. jquery 数组添加不重复数据
  4. Linux_基础_进程管理
  5. 浏览器API location
  6. JQuery插件开发学习
  7. SSH三大框架的知识题
  8. IOS 开发-- 常用-- 核心代码
  9. 二叉查找树的插入,删除,查找
  10. GRUB 启动 WIN PE 镜像(ISO)