|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后我再次声明,我并没有说不看好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里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。 |
|