Grails - 在 flash.message 中避免 XSS 的最佳实践?

标签 grails xss security

因此,在 Grails 中为您生成的默认 Controller 将向用户返回一条消息,让他们知道某些内容已成功插入/编辑。默认情况下返回插入的东西的 id,domainClassInstance.id 在下一行的末尾

flash.message = "${message(
    code: 'default.updated.message', 
    args: [
      message(code: 'domainclass.label', default: ''), 
      domainClassInstance.id
    ])}"

在您的实际应用程序中要做的一个明显改进是更改相关对象的标题/名称,即:

flash.message = "${message(
     code: 'default.updated.message', 
     args: [
       message(code: 'domainClass.label', default: ''), 
       domainClassInstance.name
     ])}"

然而,这引入了 XSS 漏洞,因为“名称”字段直接作为消息输出。是否有万无一失的方法来推荐人们创建他们的消息来避免这种情况,或者我是否需要确保人们总是将 .encodeAsHTML() 标记到名称参数上?这对我来说似乎有点容易出错。

谢谢, 罗宾

最佳答案

关于Grails - 在 flash.message 中避免 XSS 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5362705/

相关文章:

grails - 从 Grails Application 调用 Mono 下编译的 .NET DLL 还是使用 SOAP?

xss - 跨站脚本攻击和同源策略

php - 如何使用 PHP 上传安全图片?

javascript - jQuery 漏洞 (NVD CVE-2007-2379)

grails - Grails 2.4.4是否支持SCSS?

grails - 如何在 grails 中运行一部分 spock 功能测试?

c++ - 在 IInternetSecurityManager 中覆盖 GetSecurityId

php - 这两个功能对于 sanitizer 来说是否过大?

.net - 加密应用服务连接字符串

grails - Groovy-具有多个引用的闭合