【问题标题】:How to encrypt and decrypt mvc urls along with controller and action name in mvc 5?如何在 mvc 5 中加密和解密 mvc url 以及控制器和操作名称?
【发布时间】:2016-06-28 13:09:12
【问题描述】:

我想知道是否有任何方法可以加密和解密 mvc url 及其控制器和操作名称。区域名称不应加密,即 url 应如下所示:http://domainName.com/MyAreaName?MyParam=encryption

其中 MyParam 是传递给 url 或页面的参数名称。 请向我推荐几个完整的示例链接以获取想法。

【问题讨论】:

  • 可以只用https吗?
  • 其实 http 或 https 没关系,我不希望用户看到我的控制器和动作名称以及 url 中的参数值,它应该是一种散列。
  • 如果您对 url 进行哈希处理,那么 ASP 将无法计算出客户端想要做什么(您想要什么路由)。你问的根本没有意义。也许某些上下文会有所帮助……但我对此表示怀疑。
  • 我当前的 url 是 :: MyDomain.com/Dashboards/MyDashboard/Page?Pageid=37,其中 area=Dashboards,controller=MyDashboard,action=Page,parameter=Pageid,参数值=37。我想像这样向用户显示网址:MyDomain.com/Dashboards/encryption?Pageid=encrypted.
  • 好吧,也许我没有说清楚。这解决了什么问题?因为,我试图了解您将如何浏览网址已加密的网站。您还将违反 HTTP GET 的基本承诺。根据您的操作,您甚至可能会破坏书签。你破坏了这么多东西,但你没有给我任何好处。

标签: encryption asp.net-mvc-5


【解决方案1】:

好的。这实际上是一个严重但已解决的问题。加密不是问题的关键,至少不是传统的安全加密。强加密有几个特性使其不切实际。

  1. 性能(加密很昂贵)
  2. 确定性(没有确定性,缓存会导致性能下降)

UUID/GUID

避免顺序 ID 的传统方法是使用非顺序 ID。如果您在您的网站上公开 UUID/GUID,黑客将无法弄清楚

  1. 您拥有的最大 ID 的客户数量
  2. 如何通过 id 访问 Bob 的帐户。

UUID 看起来像 de305d54-75b4-431b-adb2-eb6b9e546014,您不能递增它来查找下一条记录。

【讨论】:

  • 感谢您提供详细信息,但是在 mvc 中是否有办法加密控制器和操作名称?
  • @goshan2011 “动作”名称的原因是什么?另外,不,不透明,因为您还需要更改链接。
  • @goshan2011 你说的“安全”你的威胁模型和攻击向量是什么?
猜你喜欢
  • 2016-05-23
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-27
  • 1970-01-01
  • 2011-10-07
相关资源
最近更新 更多