Rails反斜杠unescape post param

时间:2015-09-08 23:53:51

标签: ruby-on-rails post params

我有一个API端点需要通过POST请求接收一些数据。这些数据已签名,因此签名实际上随之发送。

签名使用RSA私钥加密,如下所示:

viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\n2Xg8FBke2RakOo8J0ORFc2LYSK2...

发布表单时,通过双反斜杠(\n)转义所有反斜杠符号(\\n)来更改此签名:

viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\\n2Xg8FBke2RakOo8J0ORFc2LYSK2...

实际上使验证签名错误的过程。为了摆脱if,我尝试使用实际输出正确签名的JSON.parse,但也引发Unexpected token错误。

我也尝试使用CGI::unescape无效。从那里开始,我很难理解如何使这项工作。

想法?

1 个答案:

答案 0 :(得分:0)

如果只是这个特殊角色给你带来问题,你可以简单地gsub

signature = params[:signature].gsub("\\n", "\n")