Ruby on rails 在rails中调用slim模板的params安全吗?

Ruby on rails 在rails中调用slim模板的params安全吗?,ruby-on-rails,slim-lang,Ruby On Rails,Slim Lang,我只是想知道,出于安全原因,调用像params[:id]这样的参数是否安全,这些参数来自url中的请求参数(例如/?id=console.log(1)),对于像h3=params[:id]这样的rails,它们是在slim tempalate下调用的 参数是否自动转义或清除 感谢您的帮助。这实际上取决于上下文,但一般来说,我认为直接在视图中呈现原始参数是一种反模式。参数是控制器真正关心的问题。我想不出哪种情况下,如果不进行一些初步的处理、验证或清理,就想在视图中呈现一个原始参数 Params(以

我只是想知道,出于安全原因,调用像
params[:id]
这样的参数是否安全,这些参数来自url
中的请求参数(例如/?id=console.log(1))
,对于像
h3=params[:id]
这样的rails,它们是在slim tempalate下调用的

参数是否自动转义或清除


感谢您的帮助。

这实际上取决于上下文,但一般来说,我认为直接在视图中呈现原始参数是一种反模式。参数是控制器真正关心的问题。我想不出哪种情况下,如果不进行一些初步的处理、验证或清理,就想在视图中呈现一个原始参数

Params(以及任何其他值)将在视图中进行HTML清理,但请记住,用户可能会在此处提供他们想要的任何值,因此值得问问自己这可能会导致什么漏洞或边界条件

最后,虽然这不是一条绝对的规则,但我强烈认为主ID应该仍然是数据库关注的问题。在某些情况下,将它们暴露给用户或外界可能有风险。原因是,如果主键是自动递增的(通常是自动递增的),则您正在泄漏有关数据库的信息(例如,有多少条记录)。在这种情况下,隐藏或散列主键可能是值得的