我正在创建一个ASP.NET MVC网站,我正在徘徊你们使用哪些技术来保护这些mvc网址上的主键。
实际上,ASP.NET MVC为其URL生成了这种语法:
/Controller/Action/Id
上周我尝试使用SHA-1加密对其进行加密,但是这个加密器会生成一些特殊的符号,如+(加号),/(斜杠)和其他烦人的字符,这些字符难以解密。
也许创建自定义加密应该可以解决问题。但我想从你们这里来,你有什么想法来保护mvc网址吗?
答案 0 :(得分:1)
保护主键的最佳(=唯一正确的恕我直言)方法是在服务器端安全检查是否允许当前用户查看它。另一个常见的选择是使用难以猜测的Guids,但没有服务器端验证,它仍然是Obscurity的安全性。
答案 1 :(得分:1)
我不知道你如何通过保护主键获得任何收益,除非你相信“默默无闻”(这与“很少或没有安全性”相同)。
除了隐藏实际ID之外,您应该确保使用适当的安全模型,以确保执行URL黑客攻击的人无法访问他们不允许查看的记录。
答案 2 :(得分:0)
直接回答您的问题:任何加密Id的方法最好使用经过验证的加密方法,如框架中的SHA-1。您可以使用UrlEncode阻止非法字符干扰。
话虽这么说,我会考虑使用服务器端安全性来验证用户是否可以访问指定查询字符串的对象,而不是试图掩盖实际的PK。