Content Security Policy (CSP) for ASP.NET Projects

As your site scales or handles sensitive data, a strong Content Security Policy (CSP) becomes essential—not just for security, but for trust, SEO, and performance.
🔹 Think of CSP as your site’s seatbelt—it doesn’t stop traffic accidents, but it protects you when things go wrong.
🔍 script-src
vs script-src-elem
script-src
This applies to all JavaScript:
- Inline scripts
- External scripts (
<script src="">
) - Dynamically injected scripts
script-src-elem
This targets only external scripts loaded via <script src="">
.
Useful when you want to:
- Allow CDN-hosted JS
- Disallow inline JS (a common vector for XSS)
script-src 'self';
script-src-elem 'self' https://trusted-cdn.com;
✅ Inline scripts won't work unless 'unsafe-inline'
is added
✅ External scripts limited to your domain and trusted CDNs
💡 When to Use Nonces
For inline scripts that must exist, you can generate a nonce dynamically per request:
<script nonce="random123">
console.log('Hello safely!');
</script>
Content-Security-Policy: script-src 'nonce-random123';
✅ Only scripts with a valid nonce will execute
✅ Removes the need for 'unsafe-inline'
I can help you implement this dynamically in Razor Pages or your layout view.
🧠 What About Hashes?
If your inline scripts don’t change, use a SHA-256 hash instead:
Content-Security-Policy: script-src 'sha256-abc123...';
This is great for static inline JS and allows you to drop 'unsafe-inline'
.
✅ TL;DR – When to Upgrade
Scenario | Use |
---|---|
Loading external JS via CDN | script-src-elem |
Want to block all inline JS | Nonces or hashes |
Aiming for CSP Level 2/3 | No 'unsafe-inline' , use nonces |
XSS-sensitive pages | Nonces, script-src-elem , hashes |
Lighthouse audit pass | Nonces or hashes |
Why This Matters for Your Business
🧠 With over 30 years of business-savvy experience, I understand that security isn't just technical—it's strategic. A strong CSP protects your brand, your users, and your revenue.
Ask me how tightening a site's CSP helped it pass a critical security audit and win an enterprise contract.
Want help setting up a modern CSP in .NET 8?
You can explore my tech stack or see my business credentials—I've already solved this for projects at scale.
✅ Ready to Protect Your Platform?
Request Access to my DevStack or Book a Demo and let’s make your site security audit–proof.