我希望与我的网络(html + jquery)集成在线支付。最简单的方法是在特定链接上发送表单。其中一个参数是签名。签名是来自字段和私钥的哈希。问题是我不想在javascript代码中公开我的私钥。有任何安全的方法吗?
以下是表单的测试代码: http://developers.payu.com/en/restapi.html#creating_new_order_form 和签名生成算法: http://developers.payu.com/en/restapi.html#references_form_signature
答案 0 :(得分:1)
简短回答是......不,好吧,也许不是真的。
您无法安全地在Javascript中执行整个过程,因为它需要您将密钥加载到用户浏览器中。这是一场即时安全游戏。
您可以做的是在某个地方拥有一个服务器(密钥存储区),它可以保存您的私钥并按需加密消息。这样可以防止最终用户看到你的私钥,但它只是将问题移到了一线 - 你怎么知道发出请求的浏览器是真正的用户而不是恶意的?如果您只是签署了任何内容,您可以完全跳过安全性。如果您还要使用服务器,为什么不使用它来提供网页并验证表单数据呢?
实际上,你需要一些服务器端来验证用户输入,检查它是否正常/未被篡改,然后签署消息并将其传递。
您必须问自己为什么需要在浏览器中执行此操作...签署邮件的重点是证明邮件的来源。如果它来自其他人的浏览器并且您对该消息一无所知,为什么您要将其签名为真实且来自您?