前天(2017-01-04)花了559元买下了《精通JFinal》视频教程。然后发现龙果网该免费的视频教程,只不过后面几集没有。作者杨福海在博客说会拉客户进入一个VipQQ群,不过没有拉我进去。
截止2017-01-06 09:00:
学习到《3.2 JFinal处理器Handler详解_编写自己的一个handler.mp4》,涉及知识点有:
Cookie的安全问题与解决方案
- 登录状态如何保存?保存在cookie中,如:loginName=HeYongBo
- 续1,这样安全吗?不安全,可以加一个md5值,如:loginName=195C5E0395E9B4AB1250E8D27B61891A#HeYongBo
- 续2,直接追加用户名的md5安全吗?不安全,可以加盐,如:loginName=C8A327F09D2D1F1D34BCE7F26B0DEB9C#HeYongBo,它是HeYongBo#123456的MD5值
- 有人会窃取cookie值吗?有,在javascript中用documnet.cookie就可以。网络劫持可以在网页中添加如下代码
- 续4,有好的解决办法吗?有,走https。当时看杨老师视频的抓包截图,看到https的post内容是加密并乱码的
FreeMarker小知识点
- @aTag
- <include>
- 自定义模板渲染:me.setMainRenderFactory(...) 杨老师在JPress项目中,就这样做了
Http协议小知识点
- 301资源永久不存在
- 302资源暂时不存在
JFinal防表单重复提交的方案
- createToken(...)
- validToken(...)
- <input type="hidden" name="_jfinal_token" value="${_jfinal_token}">
- 续3,JFinal中内部如何实现的?其实内部是生成一个随机数,存入session;在表单提交过来后,判断有无,再删除session中随机数
- 续4,这种方案有什么问题?在分布式部署时存在问题,可以用中央缓存来解决这个问题,涉及类TokenCache。在杨老师的JPress中,采用这种方案,最终以ehcache解决
JFinal中验证码
- renderCaptcha(...)
- validateCaptcha(...)
- 续2,内部怎么实现的?它内部是将验证码的md5值,存入cookie来做的
- 续3,这样做有安全问题吗?有的
- 续4,怎么解决?按杨老师的解决方案,是延续中央缓存的思路,将验证码存入中央缓存中