当前位置: 首页 > 面试题库 >

使用Rails 3.2.11和RSpec发布原始JSON数据

孔弘盛
2023-03-14
问题内容

为了确保我的应用程序不容易受到此漏洞的攻击,我试图在RSpec中创建一个控制器测试来对其进行介绍。为了做到这一点,我需要能够发布原始的JSON,但是我似乎还没有找到实现此目的的方法。在进行一些研究时,我确定至少曾经有一种使用RAW_POST_DATA标头的方法,但这似乎不再起作用:

it "should not be exploitable by using an integer token value" do
  request.env["CONTENT_TYPE"] = "application/json"
  request.env["RAW_POST_DATA"]  = { token: 0 }.to_json
  post :reset_password
end

当我查看params哈希值时,完全没有设置令牌,而只包含{ "controller" => "user", "action" => "reset_password" }。在所有情况下,尝试使用XML或什至仅使用常规发布数据时,我都得到相同的结果,似乎没有设置时间。

我知道最近的Rails漏洞改变了参数散列的方式,但是还有通过RSpec发布原始数据的方法吗?我可以直接使用Rack::Test::Methods吗?


问题答案:

据我所知,在控制器规格内不再可以发送原始POST数据。但是,可以在请求规范中轻松完成此操作:

describe "Example", :type => :request do
  params = { token: 0 }
  post "/user/reset_password", params.to_json, { 'CONTENT_TYPE' => 'application/json', 'ACCEPT' => 'application/json' }
  #=> params contains { "controller" => "user", "action" => "reset_password", "token" => 0 }
end


 类似资料:
  • 我正试图通过改造发布原始数据。 我发现了许多解决方案,以POST JSON在身体使用齐射,但我发送的数据不是JSON。 当我从邮递员那里打电话时,我得到的是数据,但不是Android系统。 请告诉我怎么做。 我试图以字符串形式发送,但错误代码为500 我也在JsonObject中发送数据,但不工作... 这是我的密码。。

  • 问题内容: 这真让我抓狂。我正在使用ASP.NET MVC。我有一个带有HttpPost动作的控制器,该动作充当另一个服务器(不在我的控制下)调用的回调URL。我想动态读取发布到它的JSON,而无需使用WebAPI或模型绑定。该URL还具有传递给它的查询字符串参数。 回调URL如下所示: http://domain.com/callback?secret=1234 我尝试使用以下方法阅读发布的输入

  • 我试图发布如下所示的原始json: 它与postman一起工作很好,但在改型中,它将单个值添加到db中,我尝试使用以下代码:

  • 问题内容: 我正在使用PHP curl进行发布,由于某种原因,我无法成功发布该表单。 当我尝试在帖子中使用相同功能时,它可以工作,但不适用于PHP。 问题答案: 如果您想使用和数据,似乎您的数据应采用格式

  • 问题内容: 我有一个Web脚本,该脚本接受JSON字符串作为通过HTTP POST请求的输入。我碰到了几个相同的AFNetworking 1.x示例,有人可以指点我还是举个AFNetworking 2.0示例向以JSON格式输入的Web脚本发出HTTP POST请求? 谢谢 问题答案: 搜索文档并尝试一些代码后,我以以下示例为例 同样不要忘记在服务器脚本中将响应头类型设置为Application

  • 问题内容: 如何使用HttpURLConnection发布JSON数据?我正在尝试: 我在第14行中收到编译错误。 cURL请求为: 这是处理cURL请求的方法吗?任何信息对我都会非常有帮助。 谢谢。 问题答案: OutputStream希望使用字节,并且您要向其传递字符。试试这个: