1
1
您可以将ID作为一个整数和一个“令牌”一起传递,该令牌将是购物车ID的一个(密码学上很强的)散列和一个随机的秘密字符串。支付处理器将知道这个秘密,这样它就可以自己执行散列并进行比较,看看它是否有效。 例如,可以使用以下(未测试)代码创建令牌:
传递此函数的结果以及购物车ID,因为哈希是单向函数,不能反转。在支付处理器上,您将对传入的购物车ID调用相同的函数,并将其与令牌进行比较。 这将防止篡改查询字符串,同时允许您使用整数。 |
2
1
你有没有想过把信息发布到中央系统,然后通过这种方式传递这些信息?那么它们在查询字符串中就不可见了。 |
3
0
如果必须在querystring中传递guid,可以对其进行加密以使其更安全。它也会给您的处理增加一点开销。 您也可以将用户的购物车绑定到一个cookie,这样在查询字符串中就看不到guid,并且会有点难以检测(尽管使用fiddler或其他类似的工具可以显示上下传递的内容)。 我会将标识符粘贴在cookie、其他头文件中,或者,如果必须发布,作为隐藏值(如Lazarus建议的那样)。我会避免把它放在查询字符串上。 |
4
0
我将使用类似于ASP.NET MVC中反伪造令牌的方法。 http://davidhayden.com/blog/dave/archive/2009/04/29/AntiForgeryTokenInMVCFramework.aspx 除了你的guid之外,在cookie和与用户绑定的数据库中保存一个随机ID。每次用户发出HTTP请求时,都要检查cookie是否与数据库匹配。很难同时纠正guid和cookie。 |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |