(ASP.NET MVC 4.5)假设您拥有一个银行或公司的模型,其ID具有敏感信息,例如帐号或其他个人识别信息。什么是最佳方式,或者至少是什么策略,路由编辑/显示操作而不将此信息放在URL中。
显然这会很糟糕:
https://goliath-natinal.com/Accounts/Edit/954321
如果954321是您的银行帐号。
我想这样做的一种方法是为每个作为代理键的帐户添加一个GUID。但我很好奇,如果你根本无法改变数据库,是否有可能做某事。
答案 0 :(得分:1)
在这里抛出一些想法......
您可以使用Rijndael或其他类型的加密来加密您的标识符。您可以根据与帐户相关的其他标识字段对其进行加盐和哈希。你可以动态地做到这一点。你会受到一次处理。
如果你正在使用内存缓存或天蓝色缓存,你可以创建一个guids帐户映射,让它只是放在缓存中。如果允许,在DB中您可以创建一个单独的映射表,将该帐户映射到新的guid。
您能否提供有关完整限制的更多信息? I.E.该表是否受限于更改,还是整个数据库?你能创建一个新数据库吗?