cookie

session与cookie的区别和联系

假如想象 提交于 2019-12-14 01:19:29
一、Session的概念 Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的Session。 一般情况下,服务器会在一定时间内(默认30分钟)保存这个 Session,过了时间限制,就会销毁这个Session。在销毁之前,程序员可以将用户的一些数据以Key和Value的形式暂时存放在这个 Session中。当然,也有使用数据库将这个Session序列化后保存起来的,这样的好处是没了时间的限制,坏处是随着时间的增加,这个数据 库会急速膨胀,特别是访问量增加的时候。一般还是采取前一种方式,以减轻服务器压力。 二、Session的客户端实现形式(即Session ID的保存方法) 一般浏览器提供了两种方式来保存,还有一种是程序员使用html隐藏域的方式自定义实现: [1] 使用Cookie来保存,这是最常见的方法,本文“记住我的登录状态”功能的实现正式基于这种方式的。服务器通过设置Cookie的方式将Session

HttpOnly

…衆ロ難τιáo~ 提交于 2019-12-13 23:49:46
1.什么是HttpOnly? 如果您在cookie中设置了HttpOnly属性,那么通过 js脚本 将无法读取到cookie信息,这样能有效的防止XSS攻击,具体一点的介绍请google进行搜索 2.javaEE的API是否支持? 目前sun公司还没有公布相关的API,但PHP、C#均有实现。搞javaEE的兄弟们比较郁闷了,别急下文有变通实现 3.HttpOnly的设置样例 javaEE response.setHeader("Set-Cookie", "cookiename=value; Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly"); 具体参数的含义再次不做阐述,设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取 Cookie cookies[]=request.getCookies(); C# HttpCookie myCookie = new HttpCookie("myCookie"); myCookie.HttpOnly = true; Response.AppendCookie(myCookie); VB.NET Dim myCookie As HttpCookie = new HttpCookie("myCookie") myCookie.HttpOnly = True Response

SQL注入之SQLmap入门

情到浓时终转凉″ 提交于 2019-12-13 17:00:00
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 什么是SQLmap? SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。 读者可以通过位于SourceForge的官方网站下载SQLmap源码: http://sourceforge.net/projects/sqlmap/ SQLmap的作者是谁? Bernardo DameleAssumpcao Guimaraes (@inquisb),读者可以通过 bernardo@sqlmap.org 与他取得联系,以及Miroslav Stampar (@stamparm)读者可以通过 miroslav@sqlmap.org 与他联系。 同时读者也可以通过dev@sqlmap.org与SQLmap的所有开发者联系。 执行SQLmap的命令是什么? 进入sqlmap.py所在的目录,执行以下命令: #python sqlmap.py -h (译注:选项列表太长了,而且与最新版本有些差异,所以这里不再列出,请读者下载最新版在自己机器上看吧) SQLmap命令选项被归类为目标(Target)选项、请求(Request)选项、优化、注入、检测、技巧(Techniques)、指纹、枚举等。 如何使用SQLmap: 为方便演示

越权漏洞简单分析

爱⌒轻易说出口 提交于 2019-12-13 15:50:58
一、原理 越权漏洞是Web应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。当然这些数据仅限于存在漏洞功能对应的数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。 二、分类 主要分为水平越权和垂直越权,简单了解一下这两者的区别: 水平越权: 指攻击者尝试访问与他拥有相同权限的用户资源。例如有一个写作网站,作者(A)登录后可以对自己的文章进行发布、查看、删除等操作。当删除一篇文章时,发送的请求 URL 如下: http://www.xxxx.com/article.php?action=delete&id=1 action 参数是要执行的动作 delete 删除,id 为文章 id 号。当 A 用户想恶意攻击时,将 id 号改为了 2,发送了如下 URL: http://www.xxxx.com/article.php?action=delete&id=2 因为 id 为 2 的文章不属于 A 用户,A 将 id 改为 2 删除成功,此时程序没有对请求进行相关的权限判断,导致任何人可操作,则为水平越权。 垂直越权: 垂直越权可以分为两种,分别是向上越权和向下越权。向上指一个低级别攻击者尝试访问高级别用户的资源,向下指一个高级别用户尝试访问低级别用户的资源。例如一个用户的个人信息管理页是 user

SQL注入之SQLmap入门(转自freebuf)

本小妞迷上赌 提交于 2019-12-13 14:06:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 具体见: http://www.freebuf.com/articles/web/29942.html 用户手册: http://drops.wooyun.org/tips/143 http://drops.wooyun.org/tips/401 什么是SQLmap? SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。 读者可以通过位于SourceForge的官方网站下载SQLmap源码: http://sourceforge.net/projects/sqlmap/ SQLmap的作者是谁? Bernardo DameleAssumpcao Guimaraes (@inquisb),读者可以通过 bernardo@sqlmap.org 与他取得联系,以及Miroslav Stampar (@stamparm)读者可以通过 miroslav@sqlmap.org 与他联系。 同时读者也可以通过dev@sqlmap.org与SQLmap的所有开发者联系。 执行SQLmap的命令是什么? 进入sqlmap.py所在的目录,执行以下命令: #python sqlmap.py -h (译注:选项列表太长了

Java Web之状态管理

流过昼夜 提交于 2019-12-13 07:45:48
1、创建Web项目CookieDemo 2、修改web目录里的首页文件index.jsp 3、在web目录里创建登录页面login.jsp < %@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8" % > < html > < head > < title > 用户登录 < /title > < /head > < body > < h3 style = "text-align: center" > 用户登录 < /h3 > < form action = "do_login.jsp" method = "post" > < table border = "1" cellpadding = "10" style = "margin: 0px auto" > < tr > < td align = "center" > 用户名 < /td > < td > < input id = "uname" type = "text" name = "username" / > < /td > < /tr > < tr > < td align = "center" > 密 & nbsp ; 码 < /td > < td > < input id = "upwd" type = "password"

使用Cookie保存用户信息

廉价感情. 提交于 2019-12-12 20:58:39
1、添加Cookie对象 注: Cookie 是可以 覆盖 的,如果重复写入 同名的Cookie ,那么将会 覆盖 之前的 Cookie 。 Cookie cookie=new Cookie("username",u.getUserName());//设置名字和值 Cookie是保存的数据是键值对 录入名为username的信息 cookie.setPath("/reg_login");//设置Cookie的路径 cookie.setMaxAge(60*60*60);//设置Cookie生效的时间 response.addCookie(cookie);//通过response保存cookie对象 2、通过cookie来获取数据 Cookie [] cookies=request.getCookies();//因使用getCookies获取的是一个数组因此需要通过自己编写一个工具类来获取对应的Cookie对象 Cookie cookie= CookieUtils.getCookie(cookies,"username"); 来源: https://www.cnblogs.com/shouyaya/p/12031404.html

JSP + Session Cookie详解

左心房为你撑大大i 提交于 2019-12-12 18:14:31
篇幅较大,对JSP进行了非常详细的讲解,并解释了Session和Cookie的实现原理 ,预计看完需要20分钟左右,慢慢享受吧 JSP概述 掌握了servlet后,就可以利用servlet来开发动态页面了,但是使用Servlet开发动态页面,存在种种问题,来看下面的例子: 使用Servlet来开发百度首页: 分析上面的案例不难发现以下问题: Html与Java代码混合在一起,维护困难 每一行都是一个println语句,效率低下 编译器无法检测问题,调试麻烦 JSP概念 全称JavaServerPage服务器页面,为了使开发动态页面更加简单而出现,本质上也是一个Servlet 动态与静态 一个页面如果不会随着任何条件(时间,用户信息...)改变而发生变化,那它就是静态的,静态页面通常只能提供最基本的信息展示 动态页面是会随着访问时的时间,地点,提交的数据不同而展示不同的内容,它就是动态页面,例如可以根据登录用户的不同而展示的不同的购物信息,通常页面的数据来自于数据库 特点: JSP可将原本都在Servlet中的java代码与HTML分离,降低耦合,可维护性好 可编写原生HTML,且编译器会进行语法检查,开发效率更高 JSP本质就是Servlet,被执行前会被先转译为java文件 注意 :JSP文件需放在web(webContent)资源目录下,后缀为.jsp jsp执行过程 示例:

Servlet学习笔记——第四天

心不动则不痛 提交于 2019-12-12 18:07:16
Servlet学习打卡 Servlet学习笔记---第四天 Servlet笔记 第四天 一. 复习 二、用户信息追踪 1. 概念: 2. 手段 1) cookie : 在客户端浏览器中保存用户状态数据 2)HttpSession:在服务器端保存用户状态数据 三. Cookie 1. 概念 1)服务器写到浏览器上的一小段String,由name和value两部分组成(不支持中文) 2)当浏览器访问服务器时,服务器可以读取浏览器上曾经自己写过的cookie 3)cookie有存活时间(可以设置) 2. 操作cookie的API 1)创建cookie对象 --- Cookie c = new Cookie( name , value ); 2)写cookie --- response.addCookie(c); 3)读cookie --- request.getCookies() --> Cookie[] 如果没有读到,返回值为null 4)设置存活时间 --- cookie.setMaxAge( xxx ); 5)设置cookie的访问路经 --- cookie.setPath("....."); 四. HttpSession 会话:client与服务器端的一次完整的通信过程(涵盖多次请求) 1. 使用【重点】 1)获取 --- HttpSession session =

什么是CSRF

烈酒焚心 提交于 2019-12-12 13:53:15
什么是CSRF? CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。 CSRF攻击的本质原因 : CSRF攻击是源于Web的隐式身份验证机制!Web的身份验证机制大致就是说为了防止用户每次发送请求的时候都需要登录,在进行一次登录验证通过后,之后发向该域名的请求都会自动带上cookie。虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的。CSRF攻击的一般是由服务端解决,而XSS主要是由客户端解决。 CSRF攻击的原理: 1. 用户打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A。 2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器。 3. 用户在未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B。 4. 网站B接收到用户请求后,发出一个访问网站A的请求。 5. 浏览器根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的