2010-04-05 122 views
0

我正在创建一个ASP.NET MVC网站,我在徘徊你们使用哪些技术来保护这些mvc网址上的主键。哪种方法可以保护ASP.NET MVC上的主键?

其实ASP.NET MVC生成此语法的网址:

/Controller/Action/Id 

上周我试图使用SHA-1加密对其进行加密,但这种加密生成一个像+一些特殊符号(加) /(斜线)以及其他烦人的字符,这些字符难以解密。

也许创建自定义加密应该可以解决问题。但我想从你们这里来,你有什么想法来保护mvc网址吗?

回答

1

保护主键最好的方法是保证服务器端的安全性,如果当前用户被允许查看它。另一个通常的选择是使用很难猜测的Guids,但是如果没有服务器端验证,它仍然是Security by Obscurity。

+2

这正是我们在应用程序中所做的。让人们输入帐户/显示/ {notMyId} ...因为您登录到系统中,我们知道您是谁,并且您不会看到来自您不拥有的身份证的任何信息:) – Jedidja 2010-04-05 19:56:19

+0

不错,我会继续Guid并确保当前用户可以看到它。谢谢迈克 – 2010-04-05 20:18:01

0

我不明白你如何通过保护主键来获得任何东西,除非你相信“默默无闻的安全性”(这与“很少或没有安全性”相同)。

而不是隐藏实际的ID你应该确保有一个适当的安全模型,以确保进行URL黑客的人不能访问他们不允许看到的记录。

0

要直接回答您的问题:任何加密Id的方法最好使用经验证的加密方法,如框架中的SHA-1。您可以防止使用UrlEncode来干扰非法字符。这就是说,我会考虑使用服务器端的安全性来验证用户可以访问指定查询字符串的对象,而不是试图掩盖实际的PK。

相关问题