bir*_*rdy 2 xss grails grails-orm
在我的grails应用程序中,我正在从中提取文本params并将其用作我的域查询中的参数:
例:
def color = Colors.findByName(params.colorname)
Run Code Online (Sandbox Code Playgroud)
我想有人可以摆弄params.colorname参数来对我的mysql数据库运行错误的查询.
有哪些好的做法可以防止这些事情发生?
在视图中渲染可能包含XSS攻击的字段时,需要将其编码为HTML.您应该对包含用户输入的所有字段进行编码.所有标准Grails标记都编码为HTML.如果您${}在视图中使用,那么您可能遇到麻烦.您需要手动编码,${colorname.encodeAsHTML()}或者使用标签,fieldValue如果它是bean属性.
您还可以使用grails.views.default.codec = "html"in 设置全局默认编解码器Config.groovy.
注意双重编码并确保在自定义标记中编码为HTML.
您还引用了SQL注入攻击,它与XSS攻击不同.如果您正在编写自己的SQL或HQL并直接将用户输入插入到SQL/HQL中,那么您只会面临SQL注入的风险.这意味着要做Colors.executeQuery("from Colors where name like ?", params.colorname)而不是Colors.executeQuery("from Colors where name like $params.colorname").
| 归档时间: |
|
| 查看次数: |
2566 次 |
| 最近记录: |