<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.gtconsult.com/blogs/tag/march-2026/feed" rel="self" type="application/rss+xml"/><title>GTconsult - Blog #March 2026</title><description>GTconsult - Blog #March 2026</description><link>https://www.gtconsult.com/blogs/tag/march-2026</link><lastBuildDate>Wed, 01 Apr 2026 00:17:39 -0700</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[SharePoint CSP Enforcement Is Live — Here's What to Do If Your Scripts Are Broken]]></title><link>https://www.gtconsult.com/blogs/post/sharepoint-csp-enforcement-is-live-—-here-s-what-to-do-if-your-scripts-are-broken</link><description><![CDATA[<img align="left" hspace="5" src="https://www.gtconsult.com/Blog Site/bROKEN sCRIPTS.png"/>SharePoint CSP enforcement broke your scripts? Learn how to diagnose CSP violations, fix inline JavaScript, and register trusted sources in SharePoint Online after the 1 March 2026 deadline.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_JlBbArKeROui0v2FXVIzqw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm__ySjZpf_Q5m2x5H2t8DhAg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_iTIyUCKNQo-NNv5r6KbnXQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_F5xiAV7PQhCYxliSTKGY7g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p><span><span style="font-style:italic;">Microsoft flipped the switch on March 1. If your web parts or custom solutions are suddenly misbehaving, Content Security Policy enforcement is likely the culprit. Here's how to diagnose and fix it.</span></span></p></div>
</div><div data-element-id="elm_y84eyVjKieyYxHSZE9h2PA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_y84eyVjKieyYxHSZE9h2PA"] .zpimage-container figure img { width: 862px !important ; height: 484px !important ; } } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Freak%20Out%20Panic%20GIF.gif" size="custom" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_0rvVra6YVcKDivZhYjlamg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">On 1 March 2026, Microsoft moved SharePoint Online's Content Security Policy (CSP) from report-only mode into full enforcement. That means non-compliant scripts are no longer just being logged, they're being&nbsp;<span style="font-weight:600;">blocked</span>. If something in your environment stopped working around that date, there's a good chance CSP is the reason.</p><p style="margin-bottom:20px;">This post walks you through how to confirm CSP is the issue, understand what's being blocked and why, and fix it, without breaking anything else in the process.</p></div><p></p></div>
</div><div data-element-id="elm_hfrLBq5gAsxnSPWo9PJYUw" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Step 1: Confirm CSP Is the Culprit</strong></h3></div>
<div data-element-id="elm_1CtLYqPP1JHlVvtqxqQY3g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Before diving into fixes, verify that CSP enforcement is actually what's blocking your scripts. The fastest way is through the browser console.</span></span></p></div>
</div><div data-element-id="elm_w_MBbIMF6PltojDnl-7ngQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div></div><p></p><ol><li>Open the affected SharePoint page in your browser.</li><li>Press&nbsp;<span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"> F12&nbsp;</span> to open Developer Tools and navigate to the Console tab.</li><li>Look for errors beginning with&nbsp;&nbsp;<span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">Refused to execute script </span>&nbsp;or containing&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"><span style="font-family:&quot;Courier New&quot;, monospace;">Content-Security-Policy&nbsp;</span></span>.</li><li>Alternatively, append&nbsp;<span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"> ?csp=enforce </span>&nbsp;to the page URL to trigger enforcement mode explicitly and surface violations immediately.</li></ol></div>
</div><div data-element-id="elm_YGWgrTGmL6dhtuSfMdrI3Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>If you're seeing CSP violation errors, you're in the right place. If not, the issue may be something else. Check network errors or JavaScript exceptions separately.</span></span></p></div>
</div></div></div></div></div><div data-element-id="elm__GHuxlVbA11FzHnzghrshg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_fKXU-l1bWvSlNefZg5cEcg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_KAy_qLw4wb0PbMWUTTIWVw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_ekM2Bw3eIr0FUiKtH2gWvA" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Step 2: Identify What's Being Blocked</strong></h3></div>
<div data-element-id="elm_6GI90XA0XyMCPbAwRPO26g" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>CSP violations in SharePoint Online generally fall into two categories:&nbsp;</span><span style="font-weight:600;">inline scripts</span><span>&nbsp;and&nbsp;</span><span style="font-weight:600;">untrusted external sources</span><span>.</span></span></p></div>
</div><div data-element-id="elm_dACnocdr5by5gpVhmC2p0w" data-element-type="imageheadingtext" class="zpelement zpelem-imageheadingtext "><style> @media (min-width: 992px) { [data-element-id="elm_dACnocdr5by5gpVhmC2p0w"] .zpimageheadingtext-container figure img { width: 313px !important ; height: 313px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimageheadingtext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Looking%20Where%20Are%20You%20GIF%20by%20Pudgy%20Penguins.gif" data-src="/Blog%20Site/Looking%20Where%20Are%20You%20GIF%20by%20Pudgy%20Penguins.gif" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-headingtext-container"><h3 class="zpimage-heading zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left" data-editor="true"><span>Inline Scripts<br/></span></h3><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p><span><span>Any JavaScript written directly into a page, web part, or solution using&nbsp;<span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code><span style="font-family:&quot;Courier New&quot;, monospace;background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">innerHTML&nbsp;</span>&nbsp;</code><span>,&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"><span style="font-family:&quot;Courier New&quot;, monospace;">document.write()</span>&nbsp;</span>&nbsp;</code><span>, or script tags without a proper source reference will be blocked. Microsoft has confirmed that&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">unsafe-inline&nbsp;</code><span>&nbsp;is not permitted and that nonce values will not be exposed, so there is no workaround here. These scripts must be refactored.</span></span></p><p><span><span><br/></span></span></p><p><span><span></span></span></p><div><h3></h3></div><div><h3 style="margin-bottom:10px;">Untrusted External Sources</h3><div><span><span>Scripts loaded from external URLs (CDNs, third-party services, custom hosted libraries) that haven't been added to your SharePoint tenant's Trusted Script Sources list will also be blocked. Note that standard SPFx bundles deployed via&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">cdnBasePath</code><span><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span> or declared in&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">externals</code><span><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span> in your config are auto-trusted, it's dynamic loading via&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">SPComponentLoader.loadScript()&nbsp;</code><span>&nbsp;or ad-hoc external references that need manual registration.</span></span><br/></div></div><br/><p></p></div>
</div></div></div><div data-element-id="elm_mOWsCtUcNteYCYALP4q7Ug" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_mOWsCtUcNteYCYALP4q7Ug"].zpelem-box{ background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div data-element-id="elm_DhcfJmdwiJuT4EhTQjRgxw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p><span><span style="margin-bottom:6px;font-weight:600;">TENANT-WIDE AUDIT</span></span></p></blockquote></div>
</div><div data-element-id="elm_rnmNIJtk6eMEAoVd_rC16Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p><span><span>Go to Microsoft Purview and search for&nbsp;</span><span style="margin-bottom:6px;font-weight:600;">&quot;<span style="color:rgb(166, 206, 57);">Violated Content Security Policy</span>&quot;&nbsp;</span><span>in the audit log. This gives you a full picture of which pages and scripts have triggered violations across your entire tenant, not just the one page you're looking at.</span></span></p><p><span><span><br/></span></span></p></blockquote></div>
</div></div></div></div></div></div><div data-element-id="elm_KEv-U4Ca6DQzMQczVw-bzA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_1rV5-ALCygGG8HRBGFd3mw" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_c6xc0TVoOPR00Qlu21Q8dw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_A3BGzOhe70IyTdddyuW5RQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Step 3: Fix Inline Scripts</strong></h3></div>
<div data-element-id="elm_meag7RQcmyEJuBLU1WRWSg" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Inline scripts need to be moved into external&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">.js&nbsp;</code><span>&nbsp;files and hosted in a trusted location. The typical path for SPFx solutions:</span></span></p></div>
</div><div data-element-id="elm_RCDcvwmmiQ0sFP2mC49-eA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div></div><p></p><ol><li>Extract the inline JavaScript into a standalone&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);"> .js&nbsp;</span> file.</li><li>Deploy the file to a trusted location (e.g., SharePoint document library, Azure Blob Storage, your CDN).</li><li>Reference it as an external module within your SPFx solution rather than injecting it inline.</li><li>Register the script source as a Trusted Script Source (see Step 4).</li></ol></div>
</div><div data-element-id="elm_6m7EQfNHcwtUzTMpmkqK5A" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>For scripts embedded directly in classic-style page layouts or content editor web parts, the same logic applies, extract, host externally, reference externally.</span></span></p></div>
</div><div data-element-id="elm_dQYvqRaWOUiT6kZc49itQg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>Step 4: Register Trusted Script Sources</span></strong></h3></div>
<div data-element-id="elm_dHKHl9I8fLTOXl8bjDybKA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>For any external URL your solutions load scripts from, you need to add that domain to SharePoint's Trusted Script Sources list. This is done in the SharePoint Admin Center.</span></span></p></div>
</div><div data-element-id="elm_l93duRYcaUVRZCjfjHk_og" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_l93duRYcaUVRZCjfjHk_og"] .zpimagetext-container figure img { width: 23px !important ; height: 23px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Secure%20score%20carousel%20-2-.png" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p>Go to&nbsp;<span style="font-weight:600;">SharePoint Admin Center → Advanced → Trusted Script Sources</span>&nbsp;(or use PowerShell).</p></div><p></p></div>
</div></div><div data-element-id="elm_49oMtvAnwwXxcxf97JUX5g" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_49oMtvAnwwXxcxf97JUX5g"] .zpimagetext-container figure img { width: 23px !important ; height: 23px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Secure%20score%20carousel%20-3-.png" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><p></p><div><p>Add the full domain or path of the external script source. Wildcards are limited, subdomains must be registered individually.</p></div><p></p><p></p></div>
</div></div><div data-element-id="elm_93me_ksQSOiaFweHBkG0IA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_93me_ksQSOiaFweHBkG0IA"] .zpimagetext-container figure img { width: 23px !important ; height: 23px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Secure%20score%20carousel%20-4-.png" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p><span>Note the 300 entry limit across your tenant. Audit carefully before adding everything.</span></p></div><p></p></div>
</div></div><div data-element-id="elm_i69HLMIE0ni_943ZkBfKbA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_i69HLMIE0ni_943ZkBfKbA"] .zpimagetext-container figure img { width: 23px !important ; height: 23px !important ; } } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-custom zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Blog%20Site/Copy%20of%20Copy%20of%20Secure%20score%20carousel%20-5-.png" size="custom" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left zpimage-text-align-mobile-left zpimage-text-align-tablet-left " data-editor="true"><p></p><div><p><span>Changes can take up to 24 hours to propagate across your tenant.</span></p></div><p></p></div>
</div></div><div data-element-id="elm_ctoXuMt9AxzU9reosTs0wQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Via PowerShell:</span></span></p></div>
</div><div data-element-id="elm_5U-4PfFgccroxGbhR6lGzA" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_IBJtMmV_HN0vLFAWoXTxBw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_IBJtMmV_HN0vLFAWoXTxBw"].zpelem-text { background-color:#001B4C; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:1px; border-inline-end-width:1px; border-block-end-width:1px; border-inline-start-width:6px; } </style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p></p><div><pre style="margin-bottom:28px;"><span style="font-family:&quot;Courier New&quot;, monospace;"><span style="color:rgb(166, 206, 57);"><br/>Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl &quot;https://yourdomain.com/scripts&quot;</span></span></pre></div><p></p></blockquote></div>
</div></div></div></div></div></div><div data-element-id="elm_Yw9Ps3j5jzQnD7q-UgWTbw" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_WU3YlmnNnTjKkyJU_dSD4Q" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_3cEfaDqcxWBriC9THUiCuQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_m8IK40gwtTPZskTD4IxrBg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Step 5: Coordinate With Third-Party Vendors</strong></h3></div>
<div data-element-id="elm_757iSwUXx5BmO6eeSeR8vA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div><p style="margin-bottom:20px;">If your SharePoint environment includes solutions from third-party vendors, analytics tools, chatbots, form builders, or similar, those vendors may need to update their products to be CSP-compliant. Reach out to them with the specific violation URLs from your Purview audit and ask for a compliance timeline.</p><p style="margin-bottom:20px;">In the meantime, you can temporarily register their script sources as trusted, but the long-term fix needs to come from their end if their solutions use inline scripting patterns.</p></div><p></p></div>
</div><div data-element-id="elm_6Ma8PrVKz7twPmSMo-JpZQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong><span>If You're Still on the 90-Day Delay</span></strong></h3></div>
<div data-element-id="elm_d0IEmWOdqxAck3bLuHJhwQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p><span><span>Some tenants enabled the 90-day enforcement delay using&nbsp;<span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">&nbsp;</span></span><code><span style="background-color:rgb(0, 27, 76);color:rgb(166, 206, 57);">Set-SPOTenant -DelayContentSecurityPolicyEnforcement $true&nbsp;</span>&nbsp;</code><span>before 1 March. If that's you, your enforcement date is&nbsp;</span><span style="font-weight:600;">1 June 2026</span><span>, and it will arrive faster than you think. Use this guide now while you still have the buffer.</span></span></p></div>
</div><div data-element-id="elm_Z1i6hqjMX6RByjb63q0h7Q" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_Z1i6hqjMX6RByjb63q0h7Q"].zpelem-box{ background-color:#ECF0F1; background-image:unset; border-style:solid; border-color:#A6CE39 !important; border-block-start-width:0px; border-inline-end-width:0px; border-block-end-width:0px; border-inline-start-width:5px; } </style><div data-element-id="elm_R3C5fVvgQJG5taBIzKKyrQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p><span><span style="margin-bottom:6px;font-weight:600;">FURTHER READING</span></span></p></blockquote></div>
</div><div data-element-id="elm_nQzEhkS31J4tyfCb_RlvEA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><blockquote style="margin-left:40px;border:none;"><a href="https://www.gtconsult.com/blogs/post/still-on-the-90-day-csp-delay-your-1-june-deadline-is-coming" title="Still on the 90-Day CSP Delay? Your 1 June Deadline Is Coming" target="_blank" rel="">Still on the 90-Day CSP Delay? Your 1 June Deadline Is Coming</a></blockquote><blockquote style="margin-left:40px;border:none;"><p><a href="https://learn.microsoft.com/en-us/sharepoint/dev/spfx/content-securty-policy-trusted-script-sources">Support for CSP in SharePoint Online, Microsoft Learn</a></p><p><a href="https://techcommunity.microsoft.com/blog/spblog/sharepoint-online-content-security-policy-csp-enforcement-dates-and-guidance/4472662">SharePoint Online CSP: Enforcement Dates and Guidance, Microsoft Tech Community</a></p><p><br/></p></blockquote></blockquote></div>
</div></div></div></div></div></div><div data-element-id="elm_985slfZTR4k2ttRSbSmS5w" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_xzVCl9up0AagLZJdU3YuDA" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_OPiyNqZOORX7qw_D4WaPfg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_xW6xLO2np-KPSjiRwKVaEQ" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-left zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><span>Still dealing with broken scripts after CSP enforcement?</span></h3></div>
</div></div></div></div><div data-element-id="elm_m1WjnY7aKkk-kIQT-FIXEg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_lfVophjrGg8fwbIKQtky6w" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column="false"><style type="text/css"></style><div data-element-id="elm_aeLH76DFxhLwc7cGquF0rg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_-1ybMYiXbQSrXh1qhSgOIQ" data-element-type="box" class="zpelem-box zpelement zpbox-container zpdark-section zpdark-section-bg "><style type="text/css"> [data-element-id="elm_-1ybMYiXbQSrXh1qhSgOIQ"].zpelem-box{ background-color:#001B4C; background-image:unset; } </style><div data-element-id="elm_lR9Tn2hQXp3BPbLtMeeYhg" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h3
 class="zpheading zpheading-style-none zpheading-align-center zpheading-align-mobile-left zpheading-align-tablet-left " data-editor="true"><strong>Not sure where to start with CSP?</strong><br/></h3></div>
<div data-element-id="elm_i4q2Vzh5RsiZyQhQrjv7XQ" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-left zptext-align-mobile-left zptext-align-tablet-left " data-editor="true"><p></p><div style="text-align:center;margin-bottom:8px;"><div><p style="margin-bottom:28px;font-style:italic;"><span style="font-size:16px;">Chat to us and let's help you navigate this change.</span></p><span style="font-weight:700;"><a href="https://www.gtconsult.com/contact"></a></span></div></div><p></p></div>
</div><div data-element-id="elm__VFsH1zQMu4Icm-_Sw9O1A" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm__VFsH1zQMu4Icm-_Sw9O1A"].zpelem-button{ margin-block-start:-5px; } </style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-roundcorner " href="https://outlook.office.com/bookwithme/user/6bd34779624c4a8ab5f3906f5e71baf7%40gtconsult.com/meetingtype/Cfseq1rTWEyZRk62iTNVAw2?anonymous&amp;ismsaljsauthenabled=true"><span class="zpbutton-content">Book a Free Consultation with Our Technical Account Manager, Trevin</span></a></div>
</div><div data-element-id="elm_4Y45PwLDQLXa_hn4558z0A" data-element-type="spacer" class="zpelement zpelem-spacer "><style> div[data-element-id="elm_4Y45PwLDQLXa_hn4558z0A"] div.zpspacer { height:30px; } @media (max-width: 768px) { div[data-element-id="elm_4Y45PwLDQLXa_hn4558z0A"] div.zpspacer { height:calc(30px / 3); } } </style><div class="zpspacer " data-height="30"></div>
</div></div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 30 Mar 2026 16:25:43 +0000</pubDate></item></channel></rss>