我刚刚被告知我可能需要处理一个项目,我将使用ASP.NET 3.5和C#。我们团队中的某个人说我们应该在发布网站时将所有页面都更改为HTML。因此,我们不会使用 www.test.com/Page.aspx ,而是 www.test.com/Page.html
所以我想知道的是:
A。)如何做到这一点以及使用什么工具?
B。)为什么要这样做,我们可以从中受益? (被告知要阻止黑客获取它)
C。)这是推荐的吗?
提前致谢。
答案 0 :(得分:9)
A)你可以通过改变Web.config来实现:
<system.web>
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
</system.web>
B)原因是阻止观众了解网站后面的运行时,但在大多数情况下使用ASP.NET,很容易通过添加HTML来识别(例如视图状态等)
C)这取决于你真的,我不会说这是好还是坏。
您可能还需要指定buildHandler
:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true">
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
</buildProviders>
</compilation>
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory" />
</httpHandlers>
</system.web>
</configuration>
答案 1 :(得分:5)
B)C)
如果网址是公开的,您应该输入网址的相关信息,以及未来10到20年内不太可能发生变化的信息(或更多信息......),那就是:
这些事情可能会随着时间而改变:
如果网址是私有的,只要它对您的应用有帮助,构建它们并不重要。
答案 2 :(得分:2)
我是一家大型汽车运营网站的承包商,我们被要求不要丢失任何文件扩展名,因为该公司(一家非常大的新闻机构)并不想让其投资者选择一项技术高于另一项技术和供应商 - 这纯粹是一种商业痴迷,而不是通过默默无闻的技术或安全措施。
答案 3 :(得分:1)
答案 4 :(得分:0)
B)我能想到的唯一原因就是隐藏您正在使用的服务器端技术的明显标识符。然而,这是默默无闻的安全性,并且永远不会成为您唯一的主要安全措施。如果你想出于审美原因或某些事情这样做,那很好,但不要指望它能阻止坚定的黑客。
答案 5 :(得分:0)
答:使用MVC over ASP.NET,您可以创建一个路径,您可以映射到几乎任何类型的URL。
routes.MapRoute("Route1", "Foo/{Cat}/{SubCat}/{Record}.html", new { controller = "Foo", action = "Record" });
答案 6 :(得分:0)
这可能是出于SEO的原因。谷歌不喜欢这样的网址:
longurl.com/index.aspx?id=1&time=3&this=2
可能是团队成员想要以不同的方式路由网址,以便Google更有可能选择它们。
longurl.com/index/1/3/2.html
不要问我为什么google更喜欢这个,但它确实如此。如果我有刺,它喜欢知道内容是存在的。顶部链接显然是动态生成的,并不总是可能存在。
当然,如果这是针对内部网络应用程序的,可能是尝试阻止用户弄乱网址字符串并破坏网站。
编辑:总之,从上述答案中也可以看出,这可能有不止一个原因。然而,黑客的安全性似乎是一个非常糟糕的原因。如果代码足够健壮,无论URL的形式如何都是安全的。