web前端如何做签名验证,来保证请求不会被伪造.
我正在做一个网页商城的项目.现在在验证签名这里遇到了一些问题,希望各位前辈能给予提示或者指正.
商城在生成订单的时候,会有一个订单号.根据这个订单号为参数,在后台做一些逻辑操作,比如更改价格,支付之类的.这个订单号是直接加载url后面作为参数传递给服务器的.虽然传输利用了SSL加密(走的https),后台也进行了session判断.但是为了寻求更高的安全性,以及对某些操作的url设置有效时间,打算在url后面加上sign签名验证的方法.
我现在的想法是这样的,每个url后面都加上当前的时间戳和sign值,在请求中作为参数发送给服务器.服务器首先判断时间戳,如果距离当前时间超过10分钟则判断这个请求已经过期,需要重新发送请求.
但是我不知道前端的sign值如何获取.以前做app的时候,sign可以按照MD5(订单号+用户ID+时间戳+其他盐)的方式,在app内部完成,外部无法看到具体的加密方法.但是现在这个前端几乎全部是开放的,用JS做加密别人也能看到.
我也想让前端直接从服务器获取现成的sign签名,但是同样的.这个请求sign签名的url也无法验证用户的唯一性,数据的准确性.别人改下url中的订单号,照样能拿到新订单号对应的sign值.
以上是我疑惑的地方,恰恰这安全性又是特别重要,还望各位前辈能指点二三.