kum*_*mar 4 asp.net asp.net-mvc asp.net-mvc-2
我需要在ASP.NET MVC应用程序中加密URL.
我是否需要在Route Collection中的Global页面中编写代码以加密所有URL?
加密URL是个坏主意.期.
你可能想知道我为什么这么说.
我为一家加密其URL的公司申请了一份申请.这是一个webforms应用程序.仅从URL中,几乎不可能分辨出我要引起该问题的代码部分.由于调用webform控件的动态特性,您只需知道软件将要发生的路径.这让人非常不安.
除此之外,应用程序中没有基于角色的授权.这一切都基于加密的URL.如果你可以解密URL(如果它可以被加密,它可以被解密),那么你可以想象输入另一个加密的URL并冒充另一个用户.我不是说这很简单,但可能会发生.
最后,您多久使用一次互联网并查看加密的URL?当你这样做的时候,你内心有点死吗?我做.URL旨在传达公共信息.如果您不希望它这样做,请不要将其放在您的URL中(或者需要对您站点的敏感区域进行授权).
您在数据库中使用的ID应该是可供用户查看的ID.如果您使用SSN作为主键,则应更改Web应用程序的架构.
任何可以加密的东西都可以被解密,因此容易受到攻击.
如果您希望用户只有在获得授权的情况下才能访问某些URL,那么您应该使用[Authorize]ASP.NET MVC中提供的属性.
我同意加密整个网址,这是一个非常糟糕的主意。加密网址参数?并不是很多,实际上是一种有效且广泛使用的技术。
如果您真的想加密/解密url参数(一点也不坏),那么请查看Mads Kristensen的文章“ 用于查询字符串加密的HttpModule ”。
您将需要修改context_BeginRequest才能使其适用于MVC。只需删除if语句的第一部分,该语句检查原始url是否包含“ aspx”。
话虽如此,我已经在几个项目中使用了此模块(如果需要,可以使用转换后的VB版本),并且在大多数情况下,它的工作原理很吸引人。
但是,在某些情况下,我遇到了jQuery / Ajax调用无法正常工作的问题。我确信可以对模块进行修改以补偿这些情况。
| 归档时间: |
|
| 查看次数: |
7428 次 |
| 最近记录: |