cookie

前端跨域

﹥>﹥吖頭↗ 提交于 2019-12-26 10:26:25
跨域是指一个域下的文档或脚本试图去请求另一个域下的资源。也就是说如果协议,域名,或者端口有一个不同就是跨域。 那么为什么要用跨域? 其实是因为浏览器出于安全考虑,我们都知道浏览器有同源策略。如果没有同源策略的情况下,A网站可以被任意来源的Ajax访问到内容,如果当前A网站还处于登录态,那么对方就可以通过Ajax获得A网站的任何消息。当然跨域可以用来房子CSRF攻击,但是并不能完全阻止CSRF。 为什么跨域并不能完全阻止CSRF攻击呢?举个例子: 当请求跨域了,请求是必然发出去的,只是浏览器拦截了响应。你可能会疑问明明通过表单的方式可以发起跨域请求,为什么 Ajax 就不会。因为归根结底,跨域是为了阻止用户读取到另一个域名下的内容,Ajax 可以获取响应,浏览器认为这不安全,所以拦截了响应。但是表单并不会获取新的内容,所以可以发起跨域请求。所以跨域并不能完全阻止 CSRF,因为请求毕竟是发出去了。 上面讲到同源策略,那什么是同源策略呢? 同源策略(SOP)是一种约定,它是浏览器最核心也是最基本的安全功能。浏览器如果缺少同源策略,就会很容易收到xss,csrf等攻击。所谓同源是指“协议+域名+端口”三者相同,即便两个不同的域名指向同一个IP地址,也非同源。 下面来说一下几种方案来解决跨域问题 跨域的方案有: 1、通过jsonp跨域; 2、postMessage跨域; 3、跨域资源共享

nginx跨域及带cookie

给你一囗甜甜゛ 提交于 2019-12-26 10:13:52
if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Cookie,Set-Cookie,x-requested-with,Content-Type,DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Range'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain; charset=utf-8'; add_header 'Content-Length' 0; return 204; } if ($request_method = 'POST') { add_header 'Access-Control-Allow-Origin' $http_origin; add

Jmeter模拟http请求

旧巷老猫 提交于 2019-12-26 09:35:43
一、获取用户信息(GET请求):http://hostname/getuser?userid=1 1、打开jmeter,创建一个线程组,再添加一个http请求Sampler 2、设置域名、路径、请求方法、请求参数等信息 3、运行http请求,查看运行结果(右键 线程组 ->添加 -> 监听器 -> 查看结果树) 二、获取用户余额(POST请求):http://hostname/getmoney,且参数是json类型 1、创建一个http请求Sampler,设置域名、路径、请求方法(POST)、请求参数等信息 2、运行,查看结果 三、获取用户信息2(GET请求), 需要添加header,Content-Type application/json 1、创建一个http请求Sampler,设置域名、路径、请求方法(GET)、请求参数等信息 2、添加http信息头管理器 3、运行,查看结果树 四、修改用户余额(POST请求), 需要添加cookie,token是写死的token12345 cookies的作用: 当服务器需要用户名和密码进行登录时,发送请求经常要校验cookies信息;HTTP Cookie Manager可以自动储存服务器发送给客户端的所有Cookie,并在发送请求时附加上合适的Cookie。 个人理解就是记住登录状态,只需要第一次请求时登录,之后就用同一个账号访问

Shiro在Spring session管理

孤者浪人 提交于 2019-12-26 02:33:51
会话管理 在shiro里面可以发现所有的用户的会话信息都会由Shiro来进行控制,那么也就是说只要是与用户有关的一切的处理信息操作都可以通过Shiro取得,实际上可以取得的信息可以有用户名、主机名称等等,这所有的信息都可以通过Subject接口取得。 System.out.println("SESSION ID = " + SecurityUtils.getSubject().getSession().getId()); System.out.println("用户名:" + SecurityUtils.getSubject().getPrincipal()); System.out.println("HOST:" + SecurityUtils.getSubject().getSession().getHost()); System.out.println("TIMEOUT :" + SecurityUtils.getSubject().getSession().getTimeout()); System.out.println("START:" + SecurityUtils.getSubject().getSession().getStartTimestamp()); System.out.println("LAST:" + SecurityUtils.getSubject(

第10章 会话管理

牧云@^-^@ 提交于 2019-12-26 02:33:08
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性,即直接使用Shiro的会话管理可以直接替换如Web容器的会话管理。 会话 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据,如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁,Shiro的会话不仅可以在普通的JavaSE应用中使用,也可以在JavaEE应用中使用,如web应用,且使用方式是一致的。 1. login("classpath:shiro.ini", "zhang", "123"); 2. Subject subject = SecurityUtils.getSubject(); 3. Session session = subject.getSession(); 登录成功后使用Subject.getSession()即可获取会话; 其等价于Subject.getSession(true),即如果当前没有创建Session对象会创建一个; 另外Subject.getSession(false)

Shiro学习(10)Session管理

无人久伴 提交于 2019-12-26 02:32:52
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性。即直接使用Shiro的会话管理可以直接替换如Web容器的会话管理。 会话 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。 Shiro的会话支持不仅可以在普通的JavaSE应用中使用,也可以在JavaEE应用中使用,如web应用。且使用方式是一致的。 Java代码 login("classpath:shiro.ini", "zhang", "123"); Subject subject = SecurityUtils.getSubject(); Session session = subject.getSession(); 登录成功后使用Subject.getSession()即可获取会话;其等价于Subject.getSession(true),即如果当前没有创建Session对象会创建一个;另外Subject.getSession(false)

laravel 常用知识总结

南楼画角 提交于 2019-12-26 01:03:27
看到一篇别人的文章感觉写的不错 就copy过来了 学习源头: https://www.cnblogs.com/yjf512/p/3830750.html aravel是个很强大的PHP框架,它剔除了开发中Web开发中比较痛苦的过程,提供了验证(authentication),路由(routing),Session和缓存(caching)等开发过程中常用到的工具或者功能。 Laravel的配置都存放在app/config中。 里面所有的*.php都按照return的形式返回数据,那么就可以使用Config::get("key")来获取配置。使用Config::set("key", "value") 来赋值配置项 要想使用不同的环境配置,就需要在config下创建对应配置的文件夹。然后它会覆盖对应的配置项。 获取当前的环境是使用App::environment(),判断当前环境是什么是使用:App::environment("local") providers是用来配置对应的服务的,比如: Laravel的请求周期: 1 请求先从public/index.php中进入 2 bootstrap/start.php文件创建app并检测环境 3 内部的 /Illuminate/Foundation/start.php文件配置相关设置并加载服务器 4 加载app/start目录下的文件 5

java web

丶灬走出姿态 提交于 2019-12-26 01:01:51
      一个服务器可以设置多个域名来访问  映射同一个IP  监听域名(主机)给出相应的格式 获取字节码: 内省:在运行时能够获取JavaBean当中的属性名称和get与set方法 反射: 动态获取的信息以及动态调用对象的方法  使用前必须获取字节码文件 通过反射绕过集合泛型检测: 内部实现 通过类的全名拿到字节码 动态网页:由程序生成的网页——servlet生成 什么是servlet?   在tomcat中运行的 java程序 <load-on-startup>  优先级 //2.获取一些初始化参数 web.xml String value = config.getInitParameter("myxq"); System.out.println("getInitParameter = "+value); web.xml: <init-param> <param-name>myxq</param-name> <param-value>123</param-value> </init-param> ServletContext: 一个应用里只有一个ServletContext,里面封装的是web应用信息   一个应用可以创建多个Servlet 但任何一个Servlet拿到的ServletContext都是 同一个 服务器启动创建,关闭销毁 子类复写config可能找不到

Java Web 学习与总结(三)会话跟踪

夙愿已清 提交于 2019-12-26 01:00:07
  何为会话跟踪?举个简单的例子,比如登陆到某购物网站后,在一定时间内无论你在这个网站中切换到任意的网页,只要不执行退出操作,一直保持着你账号的登录状态。   那么在Java Web中我们应当如何去实现这一操作呢?这里给大家介绍三种技术:cookie、session和URL重写技术。   首先是cookie技术,cookie在平时我们的使用时经常可以在安全设置中看到,它其实是服务器段在客户端本地保存的一些数据,同之前我们学到的Arribute一样,也是由key-value结构组成的。它是一种在客户端保持绘画跟踪的解决方案。在用户第一次访问服务器时,由服务器通过响应头的方式发送给客户端浏览器;当用户再次向服务器发送请求时会附带上这些文本信息。通过cookie,服务器在手收到来自客户端浏览器的请求时,能够通过分析请求头的内容而得到客户端特有的信息,从而动态的生成与该客户端相对应的内容,比如在很多网站登录时我们会看到类似“记住我”的选项,其实选中了就是把你的登陆信息保存在本地了,下次访问网站时自然而然的就附带了上次的登陆信息,从而达到免再次登陆的功能。   cookie在javax.servlet.http内的源码: // // Source code recreated from a .class file by IntelliJ IDEA // (powered by

Java会话(session)管理

 ̄綄美尐妖づ 提交于 2019-12-26 00:59:52
会话概述 什么是会话 简单的理解:用户打开浏览器,点击多个超链接,访问Web服务器上多个资源,然后关闭浏览器,整个过程称之为一次会话。 需要解决的问题 每个用户在使用浏览器与服务器会话的过程中,会产生一些用户数据,如用户登陆标记,WEB应用程序必须要为每个用户在一次或多次会话过程中保存这些数据。 两种技术 Cookie Cookie是 客户端 技术,WEB应用程序把每个用户数据以Cookie的形式发送给各自的的浏览器,当用户使用浏览器再次访问WEB应用时,就会带上这些Cookie,这样,WEB应用可以为每个用户分别处理各自的数据了。 HttpSession 简称Session,是 服务器端 技术,服务器在运行时为每个用户的浏览器创建一个其 独享的HttpSession对象 。由于用户各自独享session,所以可以把各自的数据存放在各自的session域中,当用户去访问当前web应用其他web资源时,其他web资源再从用户各自的session中取出数据为其服务。 Cookie类 1、 javax.servlet.http.Cookie Cookie的属性: name:必须的,Cookie名 value:必须的,Cookie名对应的数据 comment:可选,备注 path:默认值就是产生Cookie的Servlet对应的URI 有一个cookie它的路径是:/app/servlet