AspNetCore反伪造和提琴手

时间:2019-01-20 14:14:33

标签: asp.net-core-2.0 fiddler antiforgerytoken

使用Postman或Fiddler之类的程序进行邮递需要哪些防伪密钥?似乎我既有Cookie,也有隐藏的表格数据变量。我应该使用哪个?防伪检查如何工作? 我正在使用一个简单的Web应用程序(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>

我的Razor Page模型:

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";            
        }
    }

我尝试使用此输入数据向Fiddler发出POST请求,但仍然收到状态码400。运行Web应用程序时,我从chrome复制了cookie。

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

编辑:问题的目的是了解我需要获得哪些密钥,才能在集成测试中发出POST请求。

1 个答案:

答案 0 :(得分:0)

在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