2014-07. 21-27
7.21-23
另一个项目组在搞动静分离,所有的静态资料由 Nginx 处理,动态资料由 JBoss 处理,域名不同,产生跨域问题(跨域请求和跨域 Cookie 传送)。其实访问量不大,没必要这么折腾,由 Nginx 做代理和处理静态资源完全够了。
域是浏览器的安全策略,可以说跟服务器端无关。可参考:
7.24
早上到办公室后,想从手机里拷点资料到电脑来看,发现了一个已被遗忘的好东西:《阿里巴巴集团web安全标准Ver1.4》,开发必备,码农普及安全编程的良药。
顺便推荐《白帽子讲web安全》,这本书买之前还犹豫值不值,看完第一章就觉得已经值回书价了。这个经历也改变了我对买书的看法:如果一本书能带来一点改变、甚至一点感触或启发就值回书价了。
7.25
准备开发一个与账户安全有关的功能,毕竟是普及过安全的码农了,所以就琢磨这些实现有没有问题,还发现真有问题。
问题总结起来就是:
- 过于相信用户输入(这个用户输入是指服务端接收到的所有参数,而不仅局限于用户手动收入的),服务端有的、关键的数据仍然从请求参数里获取,导致成为攻击点。
- 进行参数校验时,校验结果默认应该是不通过的,而不是 通过的。
想起两句话:
- All input are evil 。(大学时就不断听到这句话,觉得就是要做参数校验,其实这是不够滴)
- 在互联网上跟你聊天的可能是只狗。
7.27
下午,房东又在楼顶开电锯,吵得难受,去图书馆看书吧。刚好有许式伟的《Go语言编程》,因为最近准备学 Akka,就翻到“协程的原理”那里看看,然后就去跑步了。
协程的原理
协程的特点:
- 在单一的系统线程中模拟多个任务并发执行。
- 在一个特定的时间点,只有一个任务在执行,并非真正的并行。
- 被动的任务调度方式,没有任务主动抢占时间片的说法。
- 每个协程都有自己的堆栈和局部变量。
协程的关键模块:
- 任务及任务管理。
- 任务调度器。
- 异步IO。
- channel。
“大教堂”模式与“集市”模式的根本不同点在于他们对软件纠错有着完全不同对立的认识。
欢迎关注我的微信公众号: coderbee笔记,可以更及时回复你的讨论。