作为一般的经验法则,您不应该信任来自用户的任何数据输入。如果您有一个带有参数的简单link_to:
link_to "Click me", test_path(:my_param => "test")
路由可能看起来像:example.com/test?my_param=test
我如何知道参数或任何注入的数据是否被正确过滤?Rails 3 API没有指定它过滤传递给控制器的数据,但我想确保在使用params数据之前,params[:my_param]在控制器中被安全过滤。
任何想法吗?
Rails框架默认不保护GET
请求。Link_to标签正在发送一个HTTP get请求。
如果是POST/PUT/DELETE
请求,那么Rails使用protect_from_forgery
来验证数据发送url
然而,在你的情况下,写一个简单的方法来验证你的get请求的数据并不难,
您可以编写一个before_filter
来检查GET请求的发送参数
HTH