访问发布到ASP.Net的访问内容安全策略违规报告

法兰佐

例如,如果您有一个类似CSPdefault-src 'self'; report-uri /CspViolationReport/CspViolationReport由ASP.Net处理的CSP,您如何访问已发布的CSP违规报告?

我们希望找到一些发布的JSON,例如http://www.w3.org/TR/CSP11/#example-violation-report

当您检查时Request.Form,没有键,并且中也没有证据Request.ServerVariables["ALL_RAW"],而是Request.ServerVariables["HTTP_METHOD"]“ POST”。

通过Fiddler截取POST,您可以看到JSON确实已发布,但是.Net似乎无法让您看到它。

法兰佐

这是受http://muaz-khan.blogspot.co.nz/2012/06/exploring-csp-content-security-policy.html启发的一种方法,谢谢!

void ProcessCspValidationReport() {
    Request.InputStream.Position = 0;
    using (StreamReader inputStream = new StreamReader(Request.InputStream))
    {
        string s = inputStream.ReadToEnd();
        if (!string.IsNullOrWhiteSpace(s))
        {
            CspPost cspPost = JsonConvert.DeserializeObject<CspPost>(s);
            //now you can access properties of cspPost.CspReport
        }
    }
}

class CspPost
{
    [JsonProperty("csp-report")]
    public CspReport CspReport { get; set; }
}

class CspReport
{
    [JsonProperty("document-uri")]
    public string DocumentUri { get; set; }

    [JsonProperty("referrer")]
    public string Referrer { get; set; }

    [JsonProperty("effective-directive")]
    public string EffectiveDirective { get; set; }

    [JsonProperty("violated-directive")]
    public string ViolatedDirective { get; set; }

    [JsonProperty("original-policy")]
    public string OriginalPolicy { get; set; }

    [JsonProperty("blocked-uri")]
    public string BlockedUri { get; set; }

    [JsonProperty("source-file")]
    public string SourceFile { get; set; }

    [JsonProperty("line-number")]
    public int LineNumber { get; set; }

    [JsonProperty("column-number")]
    public int ColumnNumber { get; set; }

    [JsonProperty("status-code")]
    public string StatusCode { get; set; }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

构建到生产后的内容安全策略指令

来自分类Dev

ASP.NET异步发布到URL

来自分类Dev

HTML标头内容安全策略未向文件报告

来自分类Dev

从Windows Server连接到网络共享失败,并显示“组织的安全策略阻止未经身份验证的来宾访问”

来自分类Dev

访问发布文件到nodejs而不保存到磁盘

来自分类Dev

尝试将消息发布到SQS时访问拒绝错误

来自分类Dev

发布到Beanstalk AWS后无法访问Web API

来自分类Dev

以 GET 形式访问数据并发布到结果页面 (Django)

来自分类Dev

report-uri上缺少内容安全策略违规详细信息

来自分类Dev

内容安全策略停用

来自分类Dev

内容安全策略警告

来自分类Dev

内容安全策略标头-升级不安全的请求并报告事件

来自分类Dev

将值从ASP.NET页发布到C#

来自分类Dev

将JSON HttpContent发布到ASP.NET Web API

来自分类Dev

在Asp.net Core中将字典发布到Web API

来自分类Dev

jQuery发布到ASP.NET API控制器

来自分类Dev

使用jQuery发布到ASP.Net webapi

来自分类Dev

将复杂的JSON发布到ASP.NET Core Controller

来自分类Dev

ASP.NET将多个参数发布到javascript函数

来自分类Dev

通过AngularJS将JSON发布到Asp.net

来自分类Dev

ASP.NET Core发布到Azure(暂存)

来自分类Dev

无法将JSON对象发布到asp.net webapi

来自分类Dev

发布到IIS ASP.NET Core 3.1

来自分类Dev

将值从ASP.NET页发布到C#

来自分类Dev

将JSON HttpContent发布到ASP.NET Web API

来自分类Dev

通过AngularJS将JSON发布到Asp.net

来自分类Dev

ASP.NET / jQuery:将JSON发布到Web服务

来自分类Dev

ASP.NET MVC-将数据发布到Facebook

来自分类Dev

内容安全策略春季安全