Rails 反斜杠 unescape post 参数
Rails backslash unescape post param
我有一个 API 端点需要通过 POST 请求接收一些数据。这些数据已签名,因此签名实际上是随数据一起发送的。
签名使用 RSA 私钥加密,看起来像这样:
viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\n2Xg8FBke2RakOo8J0ORFc2LYSK2...
发布表单时,此签名更改为用双反斜杠 (\n
) 转义所有反斜杠符号 (\n
) :
viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\n2Xg8FBke2RakOo8J0ORFc2LYSK2...
这实际上使验证签名的过程出错了。为了摆脱 if,我尝试使用 JSON.parse
实际上输出了正确的签名,但也引发了 Unexpected token
错误。
我也尝试过使用 CGI::unescape
,但没有用。从那里开始,我一直想弄清楚如何完成这项工作。
想法?
如果只是这个特殊字符给您带来问题,您可以简单地 gsub
它:
signature = params[:signature].gsub("\n", "\n")
我有一个 API 端点需要通过 POST 请求接收一些数据。这些数据已签名,因此签名实际上是随数据一起发送的。
签名使用 RSA 私钥加密,看起来像这样:
viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\n2Xg8FBke2RakOo8J0ORFc2LYSK2...
发布表单时,此签名更改为用双反斜杠 (\n
) 转义所有反斜杠符号 (\n
) :
viPaFZgLvu8ZGepMbeQS71x8h2+K7gzI9kHk37LqMSO8lBBStcs6AyfghbeR\n2Xg8FBke2RakOo8J0ORFc2LYSK2...
这实际上使验证签名的过程出错了。为了摆脱 if,我尝试使用 JSON.parse
实际上输出了正确的签名,但也引发了 Unexpected token
错误。
我也尝试过使用 CGI::unescape
,但没有用。从那里开始,我一直想弄清楚如何完成这项工作。
想法?
如果只是这个特殊字符给您带来问题,您可以简单地 gsub
它:
signature = params[:signature].gsub("\n", "\n")