仓酷云

标题: 了解下JAVA的Rails平安导读【二】 [打印本页]

作者: 活着的死人    时间: 2015-1-18 11:08
标题: 了解下JAVA的Rails平安导读【二】
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的
能够接着上一章来看:
三 Cross-SiteReferenceForgery(CSRF)
-这个打击办法包括歹意代码或是一个用户信托的已考证的web使用页面的链接。假如session没有过时,打击者便可能实行未受权的命令。
在session那一章里,你已懂得,年夜多半的Rails使用都利用基于cookie的session。要末他们在cookie里存储一个sessionid,服务端有个sessionhash,要末全部sessionhash都在客户端。当向一个域名发送哀求时,假如能找到这个域名的cookie,扫瞄器会主动附带上这个cookie。可是,成绩是,来自于分歧域名的站点的哀求,也会发送这个cookie。来看这个例子:
1.Bob同道扫瞄了一个留言板和一个由hacker制造的html标签内容。这个元素援用的是一个bob的项目办理使用程序里的命令,而不是一个图片。
2.<imgsrc="http://www.webapp.com/project/1/destroy">
3.Bob的session在www.webapp.com仍是活的,由于他方才分开几分钟还没有刊出。
4.当扫瞄器发明这个img标签,他试图从www.webapp.com加载这个图象,正如后面所说,他将会发送一个带有无效sessionid的cookie(bob的cookie,他刚上岸www.webapp.com)。
5.位于www.webapp.com的web使用考证了对应sessionhash的用户信息而且删除id为一的谁人project。以后它前往了一个出乎扫瞄器料想的了局,以是它没有显现图象。
6.Bob并没有注重到此次打击,可是一些天今后,他发明id为一的谁人project离他而往了。
有主要的一点要注重,实践制造的图象或链接纷歧定必需位于Web使用的网域,它能够在任何中央-在一个论坛,博客帖子或电子邮件。
CSRF是一个不成疏忽的主要的平安成绩。
3.1 CSRF对策
-第一点,遵守W3C尺度,准确利用GET和POST,第二点,在non-GET哀求中利用一个平安token将使你阔别CSRF.
HTTP协定供应两品种型的哀求-GET和POST(另有其他,可是年夜多半扫瞄器不撑持),万维网同盟(W3C)为HTTPGET或POST供应了一个选择清单:
UseGETif:
这个Interaction更像是成绩,它是一个平安操纵,好比,如查询,读操纵,或查阅
UsePOSTif:
这个Interaction更像是命令,大概
这个Interaction依用户希冀的体例改动资本形态,好比定阅一个服务。
用户为这个interaction发生的了局卖力。
假如你的使用是restful的,你大概会用分外的http动词,比方PUT,DELETE。但是明天年夜多半的扫瞄器其实不撑持它们,仅仅撑持GET和POST。Rails利用一个埋没的_method来处置这一停滞(我在这篇文章http://blackanger.blog.51cto.com/140924/108678最初一段援用DHH的话也说过)。
在一个controller里的考证办法确保详细的actions不会过分利用GET.
<p>
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。
作者: 海妖    时间: 2015-1-20 14:59
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 简单生活    时间: 2015-1-23 19:33
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 蒙在股里    时间: 2015-1-25 20:20
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 冷月葬花魂    时间: 2015-2-3 20:00
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 若天明    时间: 2015-2-9 04:39
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 小妖女    时间: 2015-2-26 22:35
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: admin    时间: 2015-3-8 18:21
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 金色的骷髅    时间: 2015-3-16 09:48
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 谁可相欹    时间: 2015-3-22 22:10
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 因胸联盟    时间: 2015-3-22 22:10
是一种突破用户端机器环境和CPU




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2