实际上我只想显示我的站点的主要地址,如“http://localhost/website/”,并且希望保留这个地址用于我的所有视图(安全目的,以便登录后无人可以通过地址栏导航而不是对于那些人认证的人应该只应该从菜单导航)我将从控制器调用我不想显示我的控制器名称,也不在任何地方甚至在状态栏和属性查询字符串的页面。在asp.net中隐藏url MVC
0
A
回答
5
这里有一种折磨的方式,你可能会做你所要求的,但我可以向你保证它不会给你你想要的。具体而言,它不会保护您不受任何攻击者的攻击:
- 要求除/ GET网站的第一个GET请求之外的所有请求都是/ POST后的所有请求。所有请求都需要包含一个隐藏的表单元素,为您的应用程序提供等效的信息。这包括应用程序内部的所有超链接。那不会很有趣。
- 您需要使用IRouteHandler的自定义实现替换默认路由处理程序,以便它检查HTTP RequestContext以获取内容的表单数据(或JSON/Xml请求)。响应于GetHttpHandler方法,IRouteHandler需要返回一个合适的处理程序,可能是MvcHandler的包装器。
- 您可能需要小心避免使用大多数内置助手来为现有控制器生成Url或Ajax请求并编写您自己的。
因此,在解决你在攻击这些问题时发现的任何复杂情况之后,你会得到什么?一个非常不标准的Web应用程序,它利用Asp.Net MVC的很少内置功能,或者HTTP已经在很多年已经建立的习惯用法。如果没有可见的URL,您将很容易遭受任何重播攻击;唯一的区别是您的应用程序对您的用户不太方便,因为他们将无法使用收藏夹/书签。
最明智的选择是使用Restful URL路由方案,或使用默认路由获得的默认路由方案,然后学习使用授权操作过滤器。
请记住,只是因为URL或QueryString中没有显示,并不意味着它不可用。它只是HTTP请求正文的一部分。在Fiddler之类的帮助下,客户甚至可以检查SSL流量到您的服务器。这就是为什么你需要一个更完整的解决方案,而不仅仅是使URL不灵活。
您想了解开发Web应用程序的“快乐之路”。如果你努力去解决你正在开发的环境的基本惯例,那么可能已经有更好的方法来解决你认为你有的问题了。
1
由于您尝试的任何技巧都可能会被某个足够确定的人理解, 为什么不使用frame/iframe如果您将其从普通用户中隐藏起来呢?
0
对此的另一个破解是创建一个带有承载Web应用程序的iFrame的页面,以便主框架页面URL永不改变。
例如。
<html>
<body>
<iframe src="http://localhost/myapp/controller"/>
</body>
</html>
-2
在MVC中添加一个访问过滤器,在访问过滤器中检查请求的urlreferrer。如果urlrefferer为空[请求直接来自地址栏],请采取适当的措施。
相关问题
- 1. ASP.NET MVC - 在URL中隐藏ID?
- 2. ASP.NET MVC区域:如何在URL中隐藏“区域”名称?
- 3. 在ASP.NET网站中隐藏页面URL
- 4. 无法在ASP.NET MVC中隐藏DIV
- 5. 为asp.net隐藏Url页面
- 6. Asp.net MVC可见/隐藏
- 7. ASP.NET mvc隐藏webgrid列
- 8. asp.net mvc jquery隐藏字段
- 9. ASP.NET MVC - partialview - 代码隐藏?
- 10. ASP.NET MVC 5路由,隐藏URL中的数据
- 11. 隐藏在asp.net
- 12. asp.net mvc 5我可以隐藏控制器名称从url
- 13. 在url中隐藏.html
- 14. MVC 5 C#隐藏URL参数
- 15. ASP.NET:在gridview中隐藏列
- 16. ASP.NET MVC3的URL和隐藏ID的
- 17. ASP.Net MVC显示/隐藏内容
- 18. 隐藏字段的完整性:Asp.NET mvc
- 19. ASP.NET MVC 2并列为隐藏值?
- 20. Asp.Net Mvc隐藏下拉列表
- 21. ASP.NET MVC隐藏字段不POSTING
- 22. 隐藏无val的div(ASP.NET MVC)
- 23. ASP.NET MVC(和MvcContrib)的隐藏功能
- 24. 用asp.net隐藏/显示元素mvc
- 25. 隐藏URL
- 26. MVC 5区域隐藏主页控制器在URL中
- 27. 我怎样才能改变从asp.net MVC中的URL隐藏控制器名称
- 28. 在ASP.NET MVC中比隐藏表单字段更安全吗?
- 29. 隐藏的字段不在窗体集合中发送asp.net MVC
- 30. 在jQuery(和ASP.NET MVC)中使用隐藏值 - 不工作?
所以你真的很讨厌网络,对吧?你的网址有什么特别之处?您使用授权过滤器对所有受保护的URL进行身份验证,对吧?这就是你需要的。 – JasonTrue 2010-09-01 05:24:40
这听起来很有趣,但是,请注意,将隐藏的URL作为安全功能的想法是一厢情愿的想法。无论您的浏览器是否显示地址栏,HTTP请求都是HTTP请求。即使普通用户没有,攻击者也会知道发生了什么。 – kbrimington 2010-09-01 05:34:15
隐藏网址不利于安全。您需要在网站的相关区域实际实施认证/授权。恕我直言,你要求的是相当荒谬的。 – 2010-09-01 05:34:23