Почему некоторые люди превращают свои страницы asp.net в HTML-страницы при публикации? - PullRequest
5 голосов
/ 10 июля 2009

Мне только что сказали, что мне, возможно, придется работать над проектом, в котором я буду работать с ASP.NET 3.5 и C #. Кто-то из нашей команды сказал, что мы должны изменить все страницы на HTML, когда мы публикуем сайт. Таким образом, вместо www.test.com / Page.aspx у нас будет www.test.com / Page.html

Так что я хотел бы знать:

A.) Как это можно сделать и с помощью какого инструмента?

Б.) Почему это должно быть сделано и что мы можем извлечь из этого пользу? (Было сказано, чтобы не дать хакерам получить его)

C.) Это рекомендуется?

Заранее спасибо.

Ответы [ 7 ]

9 голосов
/ 10 июля 2009

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>
5 голосов
/ 10 июля 2009

B) C)

Если URL-адреса являются общедоступными, вы должны указать соответствующую информацию URL-адреса и то, что вряд ли изменится в ближайшие 10-20 лет (или более ..), и это будет:

  • краткое описание представленной страницы

Эти вещи могут меняться со временем:

  • идентификаторы - если вы переносите данные в другие системы
  • .html .php .jsp .do .aspx, если вы измените технологию
  • / controller / view / main, если вы измените структуру вашего сайта

Если URL-адреса являются частными, то не имеет значения, как вы их создадите, если это помогает вашему приложению.

2 голосов
/ 10 июля 2009

Я был подрядчиком на крупном автомобильном сайте, и нас попросили вообще не отключать какие-либо расширения файлов, потому что компания (очень очень крупное информационное агентство) не хотела, чтобы ее инвесторы выбирали одну технологию выше другой. и поставщики - это было чисто деловое усердие, а не техническая или защита от попыток неизвестности.

1 голос
/ 10 июля 2009

C) Нет рекомендаций за или против, но вы должны быть осторожны, когда делаете * .html переданным в ASP.NET, потому что это вызовет дополнительные издержки, когда то, что вы на самом деле хотите, это просто статическая HTML-страница (без обработки на стороне сервера ).

0 голосов
/ 10 июля 2009

Это может быть по причинам SEO. Google не любит такие URL:

longurl.com/index.aspx?id=1&time=3&this=2

Возможно, член команды хочет перенаправить URL-адрес по-другому, чтобы Google с большей вероятностью мог их подобрать.

longurl.com/index/1/3/2.html

Не спрашивайте меня, почему Google предпочитает это, но это просто так. Хотя, если бы у меня был удар, ему нравится знать, что контент есть. Верхняя ссылка, очевидно, генерируется динамически и не всегда может быть там.

Конечно, если это для внутреннего веб-приложения, возможно, стоит попытаться не дать пользователям возиться со строкой URL и ломать сайт.

РЕДАКТИРОВАТЬ: В целом, как видно из приведенных выше ответов, есть потенциально несколько причин для этого. Однако безопасность от хакеров кажется довольно плохой причиной. Если код достаточно надежен, независимо от формы URL он будет безопасным.

0 голосов
/ 10 июля 2009

A: С помощью MVC через ASP.NET вы можете создать маршрут, который можно сопоставить практически с любым типом URL-адреса.

 routes.MapRoute("Route1", "Foo/{Cat}/{SubCat}/{Record}.html", new { controller = "Foo", action = "Record" });
0 голосов
/ 10 июля 2009

B) Единственная причина, по которой я могу это сделать, - это скрыть очевидный идентификатор технологии на стороне сервера, которую вы используете. Тем не менее, это безопасность от неясности, и она не должна никогда быть вашей единственной и основной мерой безопасности. Если вы хотите сделать это по эстетическим причинам или что-то в этом роде, хорошо, но не ожидайте, что это удержит решительного хакера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...