AspNetCore Antiforgery и Fiddler - PullRequest
       57

AspNetCore Antiforgery и Fiddler

0 голосов
/ 20 января 2019

Какие ключи от подделки требуются для совершения почтовых звонков с помощью таких программ, как Postman или Fiddler? Кажется, у меня есть и cookie, и скрытая переменная данных формы. Что я должен использовать, и как работают проверки на подделку? Я использую простое веб-приложение (ASP Core 2.2.), Которое сохраняет заявки пользователей в виде файла cookie.

enter image description here

Страница создания пользователя:

@page
@model WebAppTry3.Pages.CreateUserModel
@{
    ViewData["Title"] = "CreateUser";
    Layout = "_layout";
}

<h2>CreateUser</h2>

<form method="post">
    <input asp-for="Name" />
    <input type="submit" value="SKicka" />
</form>

Вот так выглядит моя форма при отображении в формате HTML:

<form method="post">
    <input type="text" id="Name" name="Name" value="" />
    <input type="submit" value="SKicka" />
    <input name="AntiforgeryFieldname" type="hidden" value="<alot of characters...>" />
</form>

Модель моей бритвенной страницы:

public class CreateUserModel : PageModel
    {
        [BindProperty]
        public string Name { get; set; }

        public string Message = "Hm";

        public void OnGet()
        {            
        }

        public void OnPost()
        {            
            var name = Name;                        
            Message = "Inside the OnPOST";            
        }
    }

Я попытался сделать POST-запрос с Fiddler с этими входными данными, но я все еще получаю код состояния 400. Я скопировал cookie из chrome, когда запустил веб-приложение.

User-Agent: Fiddler
Host: localhost:4138
Content-Length: 0
Cookie: .AspNetCore.Antiforgery.Outs1Mq9yYA=<cookie value>
Request-body
Name: dddd
AntiforgeryFieldname: <long key>

enter image description here

EDIT : Цель вопроса - понять, какие ключи мне нужно получить, чтобы сделать запрос POST в моих интеграционных тестах.

1 Ответ

0 голосов
/ 20 января 2019

После пары попыток с Fiddle мне наконец-то удалось сделать POST-запрос, который ответил кодом состояния 200. Это входные данные, которые я использовал (я скопировал их из запроса get).

Заголовки

User-Agent: Fiddler

Host: localhost:4138

Cookie: .AspNetCore.Antiforgery.Outs1Mq9yYA=CfDJ8Ig7LmCVzbFNldSD5Hjy-zm1fb4NILdlKScOD-N5H1EUwD98_nGsCRyWuX0lP82G0nj2tEyaGanTFgIvI9Msv27DNVBh08xFqRjfnB27Fmd0MyXlpW6RH2fX86CXsXZ0lLiUqqNzWcIbQuFgZUt7kQk

Content-Length: 192

Content-Type: application/x-www-form-urlencoded

Тело запроса

Name=dddd&__RequestVerificationToken=CfDJ8Ig7LmCVzbFNldSD5Hjy-zko3GB6hZztnIO6UPtkgxZMzPmWQbJft4mxROfI4y-V2yqQ3W9-xAn2kbgY2t9f4M8hkzzwfl7HiDOkRNFdji-pjtgkOhP_wXFJok4J04A5tO7ms_57FT8sqb91qM11-IM 
...