小编Fur*_*ikh的帖子

ASP.NET MVC - 关于GET请求的CSRF

我们有一个ASP.NET MVC应用程序.通过使用@Html.AntiForgeryTokenValidateAntiForgeryToken属性,所有POST请求(表单提交)都受到CSRF保护.控制器上的一个操作方法是GET,它向用户返回一个报告(一个包含数据库数据的pdf文件).签名是:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetReport()
{
    // get data from db
    return GetReport();

}
Run Code Online (Sandbox Code Playgroud)

以下是我要针对此操作测试CSRF的步骤:

  1. 用户登录到应用程序
  2. 登录后,用户打开以下HTML文件并单击"提交"按钮:
  3. 该报告已下载.

问题:

这可以被视为CSRF攻击吗?

如果是的话,如何减轻它?由于action方法是GET请求,我如何使用MVC的CSRF方法(应用@Html.AntiForgeryTokenValidateAntiForgeryToken操作方法).

HTML文件:

<html>
      <body>
        <form action="https://<baseurl>/Analysis/GetReport">
                <input type="submit" value="Submit request" />
            </form>
          </body>
</html>
Run Code Online (Sandbox Code Playgroud)

c# security asp.net-mvc csrf

13
推荐指数
2
解决办法
6217
查看次数

AWS Step Function - 向传递状态类型添加动态值

我在我的状态机中定义了以下状态。

 "loop":{
      "Type": "Pass",
      "Result":{
        "totalCount": "$.newFieldsResponse.body.count",
        "currentCount": 0,
        "step": 1
      },
      "ResultPath": "$.iteration",
      "Next":"iterateLoop"
    },
Run Code Online (Sandbox Code Playgroud)

我希望状态的输出是:

"newFieldsResponse": {
      "isSuccess": true,
      "error": "",
      "body": {
        "count": 2,
        "fields": [...]
      }
    },
    "iteration": {
      "totalCount": 5,
      "currentCount": 0,
      "step": 1
    }
  }
Run Code Online (Sandbox Code Playgroud)

迭代属性被添加到输入中,totalCount 属性被设置为字段数组中的项目数。

但是,“迭代”属性的输出设置为:

"iteration": {
      "totalCount": "$.newFieldsResponse.body.count",
      "currentCount": 0,
      "step": 1
    }
Run Code Online (Sandbox Code Playgroud)

看起来值 "$.newFieldsResponse.body.count" 没有得到解析,而是按原样输出。

有什么我做错了吗?有人可以就如何使其工作提出建议吗?

json jsonpath amazon-web-services aws-step-functions

7
推荐指数
3
解决办法
1万
查看次数