Как я создаю благоприятные для SEO URL в ASP.Net-MVC

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

причина, являющаяся, конечно, состоит в том, что Ваши cookie, содержащие Вашу персистентную сессию, так легко украдены.

4 способа украсть Ваши cookie (от комментарий Jens Roland на странице @splattne основывал его ответ на):

  1. Путем прерывания его по небезопасной строке (пакетный сниффинг / перехват сеанса)
  2. Путем прямого доступа к браузеру пользователя (или через вредоносный или через физический доступ к полю)
  3. Путем чтения его из базы данных сервера (вероятно, Внедрение SQL, но могло быть что-либо)
  4. взломом XSS (или подобное клиентское использование)

6
задан Community 23 May 2017 в 12:34
поделиться

4 ответа

Создайте новый маршрут в Global.asax, чтобы справиться с этим:

        routes.MapRoute(
            "productId",                  // Route name
            "productId/{id}/{name}",      // URL with parameters
            new { controller = "Home", action = "productId", id = 1234, name = widget }  // Parameter defaults
        );

Asp.Net MVC имеет встроенную маршрутизацию, поэтому нет необходимости в редакторе URL.

6
ответ дан 8 December 2019 в 05:56
поделиться

MVC означает «Контроллер представления модели», и хотя эти концепции не являются тем, о чем вы спрашиваете, вы обычно можете легко подключить URL-адреса, как вы видите выше

Так, например По умолчанию URL-адрес выглядит следующим образом

http://www.somesite.com/controller/view/

, где контроллер относится к классу контроллера в вашем проекте, а представление относится к комбинации страницы / метода в контроллере. Так, например, вы можете написать представление, которое будет принимать входные данные, и выглядеть примерно так

http://www.somesite.com/widget/productid/1234/

Что касается URL SEO Friendly , это просто бесполезный сахар. Вы создаете свой контроллер таким образом, что он добавляет безобидный мусор в конец URL-адреса.

Так, например, вы заметите, что следующие три способа ответить на этот вопрос дают одинаковый результат:

Как создать SEO-дружественные URL-адреса в ASP. Net-MVC

Как мне создать SEO-дружественные URL-адреса в ASP.Net-MVC

Как мне создать SEO-дружественные URL-адреса в ASP.Net-MVC

. Переполнение стека создало свои значения маршрута таким образом, что бит, который появляется после идентификатора вопроса, на самом деле не обязательно.

Так зачем он там? Чтобы увеличить Google PageRank. Google PageRank полагается на многие вещи, общая сумма которых является секретной, но одна из вещей, которые люди заметили, заключается в том, что, при прочих равных, рейтинг URL описательного текста выше. Вот почему Stack Overflow использует этот текст после номера вопроса.

Так почему это там? Чтобы увеличить Google PageRank. Google PageRank полагается на многие вещи, общая сумма которых является секретной, но одна из вещей, которые люди заметили, заключается в том, что, при прочих равных, рейтинг URL описательного текста выше. Вот почему Stack Overflow использует этот текст после номера вопроса.

Так почему это там? Чтобы увеличить Google PageRank. Google PageRank полагается на многие вещи, общая сумма которых является секретной, но одна из вещей, которые люди заметили, заключается в том, что, при прочих равных, рейтинг URL описательного текста выше. Вот почему Stack Overflow использует этот текст после номера вопроса.

10
ответ дан 8 December 2019 в 05:56
поделиться

Я думаю, вам нужна маршрутизация MVC взгляните на эти

2
ответ дан 8 December 2019 в 05:56
поделиться

Также важно обрабатывать устаревшие URL-адреса. У меня есть база данных старых и новых URL-адресов, и я перенаправляю с помощью следующего кода;

    public class AspxCatchHandler : IHttpHandler, IRequiresSessionState
{

    #region IHttpHandler Members

    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        if (context.Request.Url.AbsolutePath.Contains("aspx") && !context.Request.Url.AbsolutePath.ToLower().Contains("default.aspx"))
        {
            string strurl = context.Request.Url.PathAndQuery.ToString();
            string chrAction = "";
            string chrDest = "";

            try
            {

                DataTable dtRedirect = SqlFactory.Execute(
                    ConfigurationManager.ConnectionStrings["emptum"].ConnectionString,
                    "spGetRedirectAction",
                    new SqlParameter[] { 
                        new SqlParameter("@chrURL", strurl)
                    },
                    true);

                chrAction = dtRedirect.Rows[0]["chrAction"].ToString();
                chrDest = dtRedirect.Rows[0]["chrDest"].ToString();

                chrDest = context.Request.Url.Host.ToString() + "/" + chrDest;
                chrDest = "http://" + chrDest;


                if (string.IsNullOrEmpty(strurl))
                    context.Response.Redirect("~/");
            }
            catch
            {
                chrDest = "/";// context.Request.Url.Host.ToString();
            }

            context.Response.Clear();
            context.Response.Status = "301 Moved Permanently";
            context.Response.AddHeader("Location", chrDest);
            context.Response.End();

        }
        else
        {
            string originalPath = context.Request.Path;
            HttpContext.Current.RewritePath("/", false);
            IHttpHandler httpHandler = new MvcHttpHandler();
            httpHandler.ProcessRequest(HttpContext.Current);
            HttpContext.Current.RewritePath(originalPath, false);
        }
    }

    #endregion
}

надеюсь, что это полезно

1
ответ дан 8 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: