https tls v1.2握手过程

https tls握手,使用非对称加密进行session key生成,使用session key做对称加密。包括clien hello、server hello、client key exchange、change cipher spec等阶段。分为RSA模式和DH模式,区别是premaster secret的生成机制。

http 307重定向

http 307返回码是Temporary Redirect,临时重定向,并且要求客户不能改变请求方式。chrome维护HSTS列表,对于http请求访问HSTS站点,拦截后直接改写为https请求,同时增加返回“Non-Authoritative-Reason: HSTS”,并且把status code解释为“internal redirect”。

记一次maven offline mode引发的问题

maven offline mode只使用本地仓库并且不检查网络。dependency:go-offline可以检查所有依赖并且提前下载,使得offline模式工作正常。maven -o使用离线模式

nodejs selenium自动登录并且更新pages

nodejs selenium使用headless模式的浏览器,模拟用户操作。webdriver和浏览器版本有对应关系,要放到$PATH变量。但是系统有异地登录验证,最终没能实现自动部署更新pages。

csrf攻击和防范

csrf攻击(英语:Cross-site request forgery)利用的是网站对用户网页浏览器的信任,伪造用户请求到其他站点。解决方法是服务器检查请求的合法性。使用referer可以简单检查请求来源,但是referer字段容易被伪造。自定义csrf token更加有效,可以放在cookie、header或者form表单的hidden字段。

hexo fancybox 3安装问题

在一个仓库里面git clone另一个仓库,会把对方的.gitignore文件下载并且生效。使用hexo g会忽略.gitignore涉及的文件。

travis ci部署github和gitee码云

使用travis部署gitee和github,用openssl aes加密ssh私钥后提交到仓库。密码提交到travis保管。travis.yml解密私钥之后用ssh-add加载。hexo deploy增加仓库地址。最后用hexo d部署。

单个阿里云ECS部署多个环境的应用

阿里云ECS上同时部署开发和生产的springboot应用。application-dev.properties存放开发环境。应用参数--spring.profiles.active=dev读取开发环境配置。使用kill -15关闭旧应用。