1

作为一般经验法则,您不应该信任来自用户的任何数据输入。如果您有一个带有参数的简单 link_to:

link_to "Click me", test_path(:my_param => "test")

路线可能如下所示:example.com/test?my_param=test

我如何知道参数或任何注入的数据是否被正确过滤?Rails 3 API 没有指定它过滤传递给控制器​​的数据,但我想确保在使用 params 数据之前在控制器中安全地过滤 params[:my_param]。

有什么想法吗?

4

1 回答 1

1

默认情况下,Rails 框架不会为GET请求提供保护。link_to 标记正在发送一个 http 获取请求。

如果是POST/PUT/DELETE请求,则 Railsprotect_from_forgery用于验证数据发送 url

但是,在您的情况下,编写一个简单的方法来验证您的 get 请求数据并不难,

您可以编写一个before_filter来检查 GET 请求的发送参数

高温高压

于 2013-01-03T21:56:43.670 回答