配置IIS服务器以使用“Content-Security-Policy”标头

时间:2016-06-23 12:53:10

标签: security iis xss

我需要在IIS中添加自定义标头 “内容 - 安全 - 政策”,“X-Content-Type-Options”和“X-XSS-Protection”。

我得到了添加这些标题的过程,但我不确定这些键的值应该是多少。 https://technet.microsoft.com/pl-pl/library/cc753133(v=ws.10).aspx

http://content-security-policy.com/

请建议。感谢

6 个答案:

答案 0 :(得分:17)

this post开始,您似乎可以直接在IIS配置文件中定义内容安全策略(并反过来填充这些标头)。链接帖子中给出的示例

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Content-Security-Policy" value="default-src 'self';" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

演示了如何做到这一点;在配置文件的httpProtocol部分中,向包含名称的customHeaders集合添加一个条目(即"Content-Security-Policy"和一个定义您希望实现的CSP的值。在给出的示例中,实现了一个非常简单的CSP,它只允许加载来自本地站点(self)的资源。

您链接的第二个资源列出了您可以在customHeader中使用的不同选项,以及有效值的示例。要记住的一件事是后续选项必须; - 分开,字符串必须以最终;结尾。

答案 1 :(得分:6)

一个老问题,但是因为谷歌让你在这里......

我找到了一位伟大的建筑师&#34;对于CSP选项:

https://report-uri.io/home/tools/

现在这似乎只是一个&#34;链接答案&#34;但事实上,该链接是一个完全构建的CSP编辑器,您单击框,在CSP中选择您需要的网站,并为您配置CSP字符串(只需将结果复制并粘贴到Content-Security-的标题中)政策)。我无法希望在此答案中复制功能,因此链接。

答案 2 :(得分:5)

Open Web Application Security Project(OWASP)在Content Security Policy Cheat Sheet下的Preventing Clickjacking上有几个Content-Security-Policy示例和一些有用的链接:

  

要防止内容的所有框架使用:

Content-Security-Policy: frame-ancestors 'none' 
     

要仅允许您的网站,请使用:

Content-Security-Policy: frame-ancestors 'self' 
     

要允许受信任的域(my-trusty-site.com),请执行以下操作:

Content-Security-Policy: frame-ancestors my-trusty-site.com

Mozilla Developers Network拥有Content-Security-PolicyX-ContentTypeOptions的完整语法和示例:

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/

X-Content-Type-Options: nosniff

这是X-XSS-Protection example

X-XSS-Protection: 1; mode=block

答案 3 :(得分:1)

在Server 2012 R2上:

  1. 打开IIS管理器。
  2. 单击IIS Server Home。
  3. DoubleClick on HTTP Response Headers。
  4. 点击右侧“操作”下的“添加”。
  5. 添加名称和值。

答案 4 :(得分:1)

<?php
$args = array (
    'post_type'  => 'service',
    'post_status' => 'publish',
    'order' => 'ASC',
    'category' => 'category_ID',
    'posts_per_page' =>-1
);

$posts = new WP_Query( $args );
if ( $posts->have_posts() ) {
    while ( $posts->have_posts() ) {
        $posts->the_post();
        //$image11 = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
        ?>
        <li>
            <a href="<?php the_permalink(); ?>">
                <i class="fa fa-file-text"></i> 
                <?php the_title(); ?>
            </a>
        </li>
        <?php  
    } 
} 
wp_reset_postdata();
?>

答案 5 :(得分:0)

根据脚本是本地脚本还是使用外部CDN等,不同站点的内容安全策略设置可能会有很大差异。因此,为了尝试找出最适合您的应用程序的设置,您可以使用仅报告版本:

<add name="Content-Security-Policy-Report-Only" value="default-src 'self'" />

“”通过添加此标头而不是Content-Security-Policy,浏览器将继续告知何时不允许某些内容,但无论如何都允许。这样,您可以在生产环境中运行网站时关注控制台当控制台中的所有错误消息都消失后,您将切换回原始标题。”参考https://blog.elmah.io/content-security-policy-in-asp-net-mvc/