каково использование маркерной соли антиподделки?

Весь эти yield операторы в определении итератора преобразовываются в состояние в конечном автомате, который эффективно использует switch оператор для усовершенствования состояний. Если бы это сделало , генерируют код для yield операторы в попытке/выгоде, которую это должно было бы копировать все в try блок для каждый yield оператор в то время как, исключая любой yield оператор для того блока. Это не всегда возможно, особенно если один yield оператор является иждивенцем на более раннем.

16
задан JasonMArcher 21 May 2015 в 23:31
поделиться

2 ответа

Много информации о AntiForgeryToken здесь: http://blog.codeville.net/2008/09/01/prevent-cross-site-request-forgery-csrf-using -aspnet-mvcs-antiforgerytoken-helper /

Это необходимо для предотвращения подделки межсайтовых запросов (CSRF). Это довольно стандартное поведение - нажать «Сохранить», заполнить форму и выполнить какое-либо действие на сервере, например, сохранить данные пользователя. Как узнать, что пользователь, отправляющий форму, является тем пользователем, за которого они выдвигаются? В большинстве случаев вы будете использовать файлы cookie или аутентификацию на основе Windows.

Что, если злоумышленник заманивает вас на сайт, который отправляет точно такую ​​же форму в небольшом скрытом IFRAME? Ваши файлы cookie отправляются в неизменном виде, и сервер не видит в этом запросе, отличном от законного. (Как обнаружил Gmail: http: //www.gnucitizen. org / blog / google-gmail-e-mail-hijack-method / )

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

А что делает соль, из статьи выше:

Salt - это просто произвольная строка. Другое значение соли означает, что будет создан другой токен защиты от подделки. Это означает, что даже если злоумышленнику каким-то образом удастся заполучить действительный токен, он не сможет повторно использовать его в других частях приложения, где требуется другое значение соли.

Обновление: Как генерируется токен ? Загрузите источник ,

20
ответ дан 30 November 2019 в 22:10
поделиться

У вас есть задайте несколько не связанных между собой проблем:

  1. Я не знаю, почему ваше программное обеспечение безопасности сообщает «сеанс исправлен». Попробуйте прочитать документацию, прилагаемую к отчету
  2. Маркер защиты от подделки:

Он используется (предположительно) для проверки действительности каждого запроса. Итак, учтите, что кто-то пытается предоставить ссылку на страницу ? X = 1 , если токен также не передан, запрос будет отклонен. Кроме того, это (может) предотвратить повторную публикацию одного и того же элемента. Если вы дважды нажмете «опубликовать», токен, скорее всего, изменится (каждый запрос), и этот случай будет обнаружен с помощью чего-то вроде:

Session["nextToken"] = token;
WriteToken(token);

...

if( !Request["nextToken"] == Session["nextToken"] ){
    ...
}

// note: order in code is slightly different, you must take the token
// before regenerating it, obviously

Я думаю, что термин для этого (атака, которую он защищает) называется «CSRF» (Cross -Site Request Forgery), в наши дни.

Попробуйте прочитать документацию, прилагаемую к отчету
  • Маркер защиты от подделки:
  • Он используется (предположительно) для проверки действительности каждого запроса. Итак, учтите, что кто-то пытается предоставить ссылку на страницу ? X = 1 , если токен также не передан, запрос будет отклонен. Кроме того, это (может) предотвратить повторную публикацию одного и того же элемента. Если вы дважды нажмете «опубликовать», токен, скорее всего, изменится (каждый запрос), и этот случай будет обнаружен с помощью чего-то вроде:

    Session["nextToken"] = token;
    WriteToken(token);
    
    ...
    
    if( !Request["nextToken"] == Session["nextToken"] ){
        ...
    }
    
    // note: order in code is slightly different, you must take the token
    // before regenerating it, obviously
    

    Я думаю, что термин для этого (атака, которую он защищает) называется «CSRF» (Cross -Site Request Forgery), в наши дни.

    Попробуйте прочитать документацию, прилагаемую к отчету
  • Маркер защиты от подделки:
  • Он используется (предположительно) для проверки действительности каждого запроса. Итак, учтите, что кто-то пытается предоставить ссылку на страницу ? X = 1 , если токен также не передан, запрос будет отклонен. Кроме того, это (может) предотвратить повторную публикацию одного и того же элемента. Если вы дважды нажмете «опубликовать», токен, скорее всего, изменится (каждый запрос), и этот случай будет обнаружен с помощью чего-то вроде:

    Session["nextToken"] = token;
    WriteToken(token);
    
    ...
    
    if( !Request["nextToken"] == Session["nextToken"] ){
        ...
    }
    
    // note: order in code is slightly different, you must take the token
    // before regenerating it, obviously
    

    Я думаю, что термин для этого (атака, которую он защищает) называется «CSRF» (Cross -Site Request Forgery), в наши дни.

    запрос будет отклонен. Кроме того, это (может) предотвратить повторную публикацию одного и того же элемента. Если вы дважды нажмете «опубликовать», токен, скорее всего, изменится (каждый запрос), и этот случай будет обнаружен с помощью чего-то вроде:

    Session["nextToken"] = token;
    WriteToken(token);
    
    ...
    
    if( !Request["nextToken"] == Session["nextToken"] ){
        ...
    }
    
    // note: order in code is slightly different, you must take the token
    // before regenerating it, obviously
    

    Я думаю, что термин для этого (атака, которую он защищает) называется «CSRF» (Cross -Site Request Forgery), в наши дни.

    запрос будет отклонен. Кроме того, это (может) предотвратить повторную публикацию одного и того же элемента. Если вы дважды нажмете «опубликовать», токен, скорее всего, изменится (каждый запрос), и этот случай будет обнаружен с помощью чего-то вроде:

    Session["nextToken"] = token;
    WriteToken(token);
    
    ...
    
    if( !Request["nextToken"] == Session["nextToken"] ){
        ...
    }
    
    // note: order in code is slightly different, you must take the token
    // before regenerating it, obviously
    

    Я думаю, что термин для этого (атака, которую он защищает) называется «CSRF» (Cross -Site Request Forgery), в наши дни.

    1
    ответ дан 30 November 2019 в 22:10
    поделиться
    Другие вопросы по тегам:

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