Javascript 将敏感数据发布到外部url

Javascript 将敏感数据发布到外部url,javascript,c#,encryption,model-view-controller,sha256,Javascript,C#,Encryption,Model View Controller,Sha256,我需要将表单数据发布到外部第三方。客户建议使用SHA-256保护数据。他们希望我们散列该值,以便他们可以验证数据的完整性和身份验证 我们正在使用.NETMVC。 数据将通过https发送 给定视图中的示例表单: <form id="form" method="post" action="@Model.ExternalUrl"> <input type="hidden" name="title" value="@Model.Title" /> <input

我需要将表单数据发布到外部第三方。客户建议使用SHA-256保护数据。他们希望我们散列该值,以便他们可以验证数据的完整性和身份验证

我们正在使用.NETMVC。 数据将通过https发送

给定视图中的示例表单:

<form id="form" method="post" action="@Model.ExternalUrl">
   <input type="hidden" name="title" value="@Model.Title" />
   <input type="hidden" name="firstName" value="@Model.FirstName" />
   <input type="hidden" name="surname" value="@Model.LastName" />
   <button type="submit"> Submit </button>
</form>

提交
假设javascript代码调用submit按钮进行自动重定向,那么散列数据的最佳方式是什么

目前我正在考虑调用服务器,从.net HMACSHA256类获取散列数据,将数据返回到客户端,然后将这些数据发布到外部url

有兴趣听到一些建设性的意见,最终我们希望避免给用户造成延迟

注意:我对其他安全建议持开放态度,主要目的是从客户端帖子验证数据完整性和身份验证,但我确实希望避免问题过于公开


谢谢。

你的问题很不清楚。我的建议:使用SSL(https协议)。对于身份验证,请设置其他输入字段(或更好的cookie)。如果您想要完整性,那么CryptoJS或Spark(JS)提供SHA1实现。数据身份验证表明您在客户端上有一些共享秘密。有吗?它有什么形式?如果您没有,那么您需要在将请求发送给第三方服务之前致电您的服务。@VikciaR我真的不明白这个问题怎么会很不清楚,我在问题中说我们已经在使用https协议了。谢谢你的意见。@ArtjomB。如果我们通过https发送数据,那么我们是否还需要验证完整性,或者数据是加密发送的这一事实是否意味着这一点?我确实看过cryptojs,但我认为SHA1正在被大量淘汰。到目前为止,我们还没有共享的秘密,但我认为类似的东西可能对我们有用,我不确定如何在维护安全的同时实现客户端共享私钥。在最简单的形式中,我们希望将密钥戳入post以将其发送过来,但这肯定会将其暴露给客户端用户?非常感谢您的帮助和建议几乎所有这些都定义了MAC(另请参阅)。所以你不需要自己做。注意,GCM和CCM已经包括消息真实性。