https-nginx配置

转载 https://bitmingw.com/2017/02/02/letsencrypt-tutorial/

October 17, 2018

测试https图床

https图床 在给网站添加了https之后,发现访问的时候依然处于不安全的状态,查看提示之后才知道是七牛图床的协议导致的 在页面上存在http的链接的时候,浏览器仍然会提示不安全. 为了访问页面时的小绿锁,势必得寻找一个https的图床了. 七牛云是有提供https支持的,只是需要在七牛云添加备案后的域名,由于网站并不打算备案,所以这条路就行不通了 国内的其他一些有提供https图床的服务又有点不靠谱,说不定哪天就跑路了呢 微博的图床服务似乎也不是很稳定 imgur,这个又有被墙的风险 腾讯云对象存储,这个似乎比较靠谱一些,只是没有一些比较趁手的工具 估计还是得用imgur吧,或者用腾讯云,再或者就是尽量采用代码以及描述性的文字来写博客吧(┓( ´∀` )┏) imgur图片测试 腾讯云对象存储

June 23, 2018

session与cookie

session与cookie cookie 在服务端中设置,在前端中需要看情况 当设置了httponly时,仅能在服务端设置,js端既不能读取也不能够设置. 无设置httponly时,前端也可以设置和读取cookie的值 ...

February 7, 2018

python-scrapy

scrapy爬虫框架 入门 安装 开始项目以及创建爬虫(参照命令行工具) scrapy startproject myproject //初始化项目 cd myproject scrapy genspider mydomain mydomain.com //创建spider ...

January 28, 2018

python-tips

python-tips 列表生成式...

January 28, 2018

servletRequest中读取body的问题

ServletRequest中读取body的数据 InputStream body = request.getInputStream(); 问题 数据流仅仅能够读取一次,如果你想要多次读取(在多个调用链中)(比如说在多个过滤器中),例如 chain.doFilter(request, response); 这样后面的调用中request将读取不到body的数据. ...

January 26, 2018

CSRF浅析

CSRF浅析 什么是CSRF Cross-site request forgery,跨站请求伪造. 简单的攻击样例 小明访问并且登录了网站A 小明访问坏人的网站B,网站B上存在一些网站A的请求(GET或者POST) 一个简单的get请求可以利用img的src属性: <img src="http://example.com/get?xxx=xxx"> 访问时触发了请求,此时由于请求中携带着相关的cookie信息,所以网站A是会通过这些非法的请求的,也就是跨站(在黑客网站B)请求伪造. 预防 referer验证 这是一种不安全的校验方法 校验原理 对于网络请求,在header里面存在着referer属性,这个属性标识出请求的来源网站,所以我们可以通过验证referer来预防csrf攻击 存在问题 对于某些浏览器来说,这个属性可能为空 referer可以轻易地伪造 从搜索引擎跳转时,referer是搜索引擎,所以可能需要维护一个白名单 双提交cookie 较为安全 实现 对于每一个网络请求,在提交请求时,在js中将cookie中的某些值(可以是单独生成的token或者用户标志灯)添加到header上提交,在后台去校验是否存在token以及是否与cookie的值相匹配 原理 当你在访问坏人的网站B时,同时提交的仅仅只有cookie,而你在正常访问时,提交时会在header中添加csrftoken. 问题 其实也不能算是问题吧,如果你的网络请求是统一到一个方法里面执行的,例如说ajax或者dwr,那么就可以很方便地修改,但是如果不是的话,那么修改的工作量可能就有点大了. 参考 https://zh.wikipedia.org/wiki/%E8%B7%A8%E7%AB%99%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0 https://zh.wikipedia.org/wiki/HTTP%E5%8F%83%E7%85%A7%E4%BD%8D%E5%9D%80 https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

January 24, 2018

web线程安全

java web中的线程安全问题 问题描述: 伪代码: 判断redis是否有相应的键值对: 有: 读取redis 没有: 读取数据库 插入redis(列表的插入) 返回 问题 当请求并发时,第一个请求redis未插入而第二个请求也进入了判断,此时第二个请求的判断条件也是"否",所以就会出现redis数据重复的情况. 原因 虽然说对于每一个单独的请求,spring都是新建一个单独的线程来进行处理,但是这并不能够解决上面的问题,究其原因,则是访问了同一个全局数据(可以认为是redis) 解决: 增加一个全局变量,使用synchronize同步方法,伪代码如下 伪代码 全局变量 lock 判断redis是否有相应的键值对: 有: 读取redis 没有: synchronize(lock) 再次判断redis是否有相应的键值对 有: 读取redis 没有: 读取数据库 插入redis 再次判断的原因:加锁只是阻塞了第二个请求的读取数据库/插入redis操作,如果没有再次判断的话,那么当第一个请求释放锁之后第二个请求依旧会再次读取数据库/插入redis,问题依旧存在 参考 http://www.cnblogs.com/doit8791/p/4093808.html

January 24, 2018

跨域请求

跨域资源请求CORS 1.什么是跨域资源请求 通常情况下,我们访问一个网站的过程如下: 访问页面example.com,加载页面html以及js 对页面进行一些操作,由js通过ajax访问后台,进行页面的更新. 一般情况下,通过ajax调用后台是同源的,同源指的是: 协议相同 端口号相同 地址相同 但是有时候通过js请求非同源的后台服务,这个时候就是属于跨域资源请求了 ...

November 14, 2017

深入剖析tomcat笔记

servlet reponse request 启动连接器->等待连接->调用container容器->解析header,调用servlet

October 30, 2017