Grails 1.1 安全性 - 防止攻击 - XSS-跨站脚本攻击

你的应用要尽可能多得检验进来的请求是从你的应用里发出的,而不是其它网站。

标签和页面流系统能做到这点,Grails对Spring Web Flow 的支持也默认包含了这个安全特性。

确保所有呈现到视图的数据值都被转义过也是非常重要的。

例如当呈现HTML文件或XHTML文件时,你必须对每个对象调用encodeAsHTML,以便保证用户不会向其他人读取的数据和标签恶意注入JavaScript代码或其他HTML代码。

Grails为此目的提供了若干个动态编码方法,因此假如你的输出转义格式没有现成的,你可以很容易得编写自己的编码器。

你也必须避免使用请求参数和数据域来决定用户转向的下一个链接。

假如你使用一个successURL参数,在你成功登入之后,用来指示用户的转向;这时攻击者可以通过你的网站模拟登入程序,然后一旦登入就把用户转向到他们的网站,这样就潜在允许JS代码使用该网站的登入帐号。