当前位置:  开发笔记 > 后端 > 正文

在asp.net MVC中隐藏URL

如何解决《在asp.netMVC中隐藏URL》经验,为你挑选了1个好方法。

实际上我只是想显示我的网站的主要地址,如" http:// localhost/website / ",并希望保留这个地址为我的所有视图(安全目的,以便登录后没有人可以通过地址栏导航也不是为了那些人是经过身份验证的人应该只应该从菜单中导航我将从控制器调用我不想显示我的控制器名称,也不在任何地方查询字符串,甚至不在状态栏和页面属性.



1> JasonTrue..:

这是一种折磨的方式,你可以做你想要的,但我可以向你保证它不会给你你想要的东西.具体来说,它不会保护你免受任何技术上无能力的攻击者的攻击:

    要求除了第一个GET请求之外的所有请求/ website都是/ post的"发布".所有请求都需要包含一个隐藏的表单元素,该元素为您的应用程序提供等效信息.这包括应用程序内部的所有超链接.这不会很有趣.

    您需要使用IRouteHandler的自定义实现替换默认路由处理程序,以便它检查HTTP RequestContext以获取内容的表单数据(或JSON/Xml请求).为响应GetHttpHandler方法,IRouteHandler需要返回一个适当的处理程序,可能是MvcHandler的包装器.

    您可能需要小心避免使用大多数内置帮助程序来为现有控制器生成Urls或Ajax请求并编写自己的控制器.

所以,在解决了这些问题后解决你发现的任何并发症后,你会有什么?一个真正非标准的Web应用程序,它充分利用了Asp.Net MVC的内置功能,或者是多年来在HTTP中已经很好地建立的惯用语.如果没有URL可见,您将容易受到任何重播攻击的攻击; 唯一的区别是您的应用程序对用户来说不太方便,因为他们无法使用收藏夹/书签.

最明智的选择是使用Restful URL Routing方案,或者使用默认路由获得的默认路由方案,然后学习使用授权操作过滤器.

请记住,仅仅因为某些内容未显示在URL或QueryString中并不意味着它不可用.它只是HTTP请求正文的一部分.在Fiddler之类的帮助下,客户端甚至可以检查服务器的SSL流量.这就是为什么你需要一个更完整的解决方案,而不仅仅是让URL不灵活.

您想学习开发Web应用程序的"快乐之路".如果您正在努力解决您正在开发的环境的基本惯例,那么可能已经有更好的方法来解决您认为的问题.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有