cookie欺骗

CSRF攻击与防御(抄的)

若如初见. 提交于 2019-12-04 10:54:30
一、CSRF介绍 CSRF(Cross-site request forgery) 跨站请求伪造,也被称为“OneClick Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。 CSRF攻击与防御,web安全的第一防线(源码,实战,5分钟科普文) 上图为CSRF攻击的一个简单模型,用户访问恶意网站B,恶意网站B返回给用户的HTTP信息中要求用户访问网站A,而由于用户和网站A之间可能已经有信任关系导致这个请求就像用户真实发送的一样会被执行。 二、CSRF攻击的危害 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如果CSRF发送的垃圾信息还带有蠕虫链接的话,那些接收到这些有害信息的好友万一打开私信中的连接就也成为了有害信息的散播着,这样数以万计的用户被窃取了资料种植了木马。整个网站的应用就可能在瞬间奔溃,用户投诉,用户流失,公司声誉一落千丈甚至面临倒闭。曾经在MSN上,一个美国的19岁的小伙子Samy利用css的background漏洞几小时内让100多万用户成功的感染了他的蠕虫,虽然这个蠕虫并没有破坏整个应用,只是在每一个用户的签名后面都增加了一句“Samy

jmeter cookies和token -- 9

末鹿安然 提交于 2019-12-04 08:35:08
现实中很多接口都会使用到cookies和token,现在简单了解一下: session    session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次session。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。 这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。 cookie    cookie是保存在本地终端的数据。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于 cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。 cookie的组成有:名称(key)、值(value)、 有效域(domain)、路径(域的路径,一般设置为全局:"\")、失效时间、安全标志(指定后,cookie只有在使用SSL连接时才发送到服务器(https))。 token    token的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time

JavaWeb面试题(转)

喜你入骨 提交于 2019-12-04 04:25:16
1、Tomcat的优化经验 答:去掉对web.xml的监视,把JSP提前编辑成Servlet;有富余物理内存的情况下,加大Tomcat使用的 JVM 内存。 2、什么是Servlet? 答:可以从两个方面去看Servlet: a、API:有一个接口servlet,它是servlet规范中定义的用来处理客户端请求的程序需要实现的顶级接口。 b、组件:服务器端用来处理客户端请求的组件,需要在web.xml文件中进行配置。 3、Servlet的生命周期,并说出Servlet和CGI的区别? 答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。 这个生存期由 java x.servlet.servlet接口中的init、service、destroy方法表达。 web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现 根据请求的不同调用不同的do**()方法。结束服务,web容器调用servlet的destroy()方法。 区别: Servlet处于服务器进程中,它通过多线程运行service()方法,一个实例可以服务于多个请求,并且实例一般不会被销毁;而 CGI对每个请求都产生一个新的进程,服务完成后就销毁,所有效率低于Servlet。 4

cookie 跨域问题

匿名 (未验证) 提交于 2019-12-03 00:26:01
cookie 跨域访问 随着项目模块越来越多 ,很多模块现在都是独立部署, 模块之间的交流有事可能会通过cookie完成 , 比如说门户和应用部署在不同的机器或者web容器中 , 假如用户登录之后会在浏览器客户端写入cookie (记录着用户上下文信息) , 应用想要回去门户下的cookie , 这就产生了cookie跨域的问题 。 cookie路径 : cookie 一般是由与用户访问页面而被创建的 , 可是并不是只有在创建 cookie 的页面才可以访问这个cookie。在默认情况下,出于安全方面的考虑,只有与创建 cookie 的页面处于同一个目录或在创建cookie页面的子目录下的网页才可以访问。那么此时如果希望其父级或者整个网页都能够使用cookie,就需要进行路径的设置。 path表示cookie所在的目录,asp.net默认为/,就是根目录。在同一个服务器上有目录如下:/test/,/test/cd/,/test/dd/,现设一个cookie1的path为/test/,cookie2的path为/test/cd/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/dd/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。 document.cookie = "name = value; path=/";

Token认证机制

匿名 (未验证) 提交于 2019-12-03 00:22:01
几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth OAuth OAuth(开放授权)是一个开放的授权标准,允许用户让第三方应用访问该用户在某一web服务上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的第三方系统(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容 下面是OAuth2.0的流程: 这种基于OAuth的认证机制适用于个人消费者类的互联网产品,如社交类APP等应用,但是不太适合拥有自有认证权限管理的企业应用; Cookie Auth

cookie 和session 的区别详解

匿名 (未验证) 提交于 2019-12-03 00:20:01
这些都是基础知识,不过有必要做深入了解。先简单介绍一下。 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie 来辨认使用者,以方便送出使用者量身定做的内容,像是 Web 接口的免费 email 网站,都要用到 Cookie。 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制 来达到保存标识的目的,但实际上它还有其他选择。 cookie机制。正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示 浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。而cookie的使用 是由浏览器按照一定的原则在后台自动发送给服务器的

hacker101教学笔记--introduction--the web in depth

匿名 (未验证) 提交于 2019-12-02 23:47:01
hacker101笔记 提前准备:运行java的环境 burp proxy(代理) firefox(浏览器) xss 可以控制参数,发送JavaScript到服务器,再从服务器反映到浏览器上面 <script>alert(1);</script> cookie 服务器发送给浏览器的键值对,有效时间 可以设置example.com的子域 为子域添加的cookie只能在该子域及其子域中读取,不能在兄弟姐妹的子域中读取。 e.g. test.example.com 的cookie不能在 test2.example.com中发挥作用, example.com 的cookie可以在foo.test.example.com中发挥作用 cookie两个重要的标志需要知道 secure:cookie只能访问HTTPS页面 HTTPOnly javascript无法读取cookie 服务器在set-cookie头中指示这些标志,set-cookie头首先传递这些标志 如果,从服务器那里传来的是HTTP,没有HTTPOnly,就可以用JavaScript的document.cookie取出来,应用它 HTML目前的解析是HTML5 从安全来说,HTML会被浏览器解析,web应用程序防火墙和其他过滤器解析 如果这些解析存在差异,就往往会带来安全问题,存在利用的漏洞 比如,example.com

会话技术

匿名 (未验证) 提交于 2019-12-02 23:36:01
会话技术 会话技术:是一种维护同一个浏览器与服务器之间多次请求数据状态的技术,它可以很容易地实现对用户登录的支持,记录该用户的行为,并根据授权级别和个人喜好显示相应的内容。 PHP中Cookie和Session是目前最常用的两种会话技术 Cookie指的是一种在浏览器端存储数据并以此来跟踪和识别用户的机制 Session指的是将信息存放在服务器端的会话技术 Cookie简介 在Web应用程序中,Cookie的功能类似与会员卡。 它是网站为了辨别用户身份而存储在用户本地终端上的数据。 当用户通过浏览器访问Web服务器时,服务器会给客户发送一些信息,这些信息都保存在Cookie中。 当该浏览器再次访问服务器时,会在请求头中同时将Cookie发送给服务器,这样,服务器就可以对浏览器做出正确的响应。 缺点 Cookie被附加在HTTP消息中,无形中增加了数据流量。 Cookie在HTTP消息中是明文传输的,所以安全性不高,容易被窃取。 Cookie存储于浏览器,可以被篡改,服务器接收后必须先验证数据的合法性。 浏览器限制Cookie的数量和大小(通常限制为50个,每个不超过4KB),对于复杂的存储需求来说是不够用的。 Session简介 Session在网络应用中称为“会话”,在PHP 中用于保存用户连续访问Web应用时的相关数据,有助于创建高度定制化的程序、增加站点的吸引力。

Django杂篇(2)

我是研究僧i 提交于 2019-12-02 23:31:49
目录 Django杂篇(2) cookie与session cookie session django中间件 自定义中间件 跨站请求伪造(csrf) CSRF的解决方案 Django杂篇(2) 本文主要介绍cookie与session组件,django中间件以及CSRF的一些介绍. cookie与session 首先我们要知道,HTTP协议本身是无状态的,无状态的概念是什么? 无状态的意思就是当用户的请求通过HTTP发给后端的时候,HTTP本身是不保留用户的任何状态的,即每次用户发送HTTP都会当做是用户第一次发送数据,这是非常不合理的,试想一下,如果我们登陆一个购物网站,登陆成功之后想要做购买商品,可是是做不了的,因为HTTP无状态,每次登陆都是第一次登陆,我们总是在不停地登陆,就没办法做任何操作. 所以就引出了cookie和session的概念,他们都是用来让用户"保持状态"的,即可以让用户处于登陆状态下,从而进行一系列的操作. cookie cookie的实际本体只是一段字符串,他是从服务器发送出来并且存放在浏览器(客户端)上的一组组键值对,当浏览器下次访问服务端的时候,就会在request请求里面自动携带这个字符串,服务端就可以识别这个字符串,根据这个cookie来解析出你的身份,哦,原来我们之前见过,而且进行过一些互动~ 查看cookie也非常简单

koa学习之路七

不打扰是莪最后的温柔 提交于 2019-12-02 23:08:54
之前的文章我们介绍了一下 koa koa-static静态资源中间件,本篇文章我们来看一下 koa 中 cookie 和 session 的使用。 cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域名的时候共享数据。 HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页 面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。 我们将之前项目中的 app.js 改为如下代码: //引入 koa模块 const Koa = require('koa'); const Router = require('koa-router'); const views = require('koa-views'); const static = require('koa-static'); //实例化 const app = new Koa(); const router = new Router(); //配置静态资源中间件 app.use(static(__dirname + "/static")); //配置模板引擎中间件 app.use(views('views', { extension: 'ejs' })); router.get('/', async (ctx) => { // 设置