ReferrerBlock 2026.2.8
See the version list below for details.
dotnet add package ReferrerBlock --version 2026.2.8
NuGet\Install-Package ReferrerBlock -Version 2026.2.8
<PackageReference Include="ReferrerBlock" Version="2026.2.8" />
<PackageVersion Include="ReferrerBlock" Version="2026.2.8" />
<PackageReference Include="ReferrerBlock" />
paket add ReferrerBlock --version 2026.2.8
#r "nuget: ReferrerBlock, 2026.2.8"
#:package ReferrerBlock@2026.2.8
#addin nuget:?package=ReferrerBlock&version=2026.2.8
#tool nuget:?package=ReferrerBlock&version=2026.2.8
ReferrerBlock
ReferrerBlock middleware to block referrer spam and malicious traffic.
โ๏ธ Usage
var builder = WebApplication.CreateBuilder(args); var app = builder.Build();
app.UseReferrerBlock();
app.Run();
The middleware uses default blocking rules. Optionally, you can customize them:
app.UseReferrerBlock(options => {
options.BlockedDomains.Add("spam-site.com");
options.BlockedTLDs.Add(".suspicious");
options.BlockedPatterns.Add("malicious");
options.BlockedSubdomainPrefixes.Add("spam");
});
๐ Examples
Disable default TLD blocking
app.UseReferrerBlock(options =>
{
options.BlockedTLDs.Clear(); // Remove all default TLDs
options.BlockedDomains.Add("spam-site.com");
});
Use only custom rules
app.UseReferrerBlock(options =>
{
// Clear all default rules
options.BlockedTLDs.Clear();
options.BlockedDomains.Clear();
options.BlockedPatterns.Clear();
options.BlockedSubdomainPrefixes.Clear();
// Add only your custom rules
options.BlockedDomains.Add("spam-site.com");
options.BlockedDomains.Add("malicious-domain.com");
options.BlockedTLDs.Add(".scam");
options.BlockedPatterns.Add("suspicious");
options.BlockedSubdomainPrefixes.Add("bot");
});
Combine default rules with custom ones
app.UseReferrerBlock(options =>
{
// Keep default rules and add custom ones
options.BlockedDomains.Add("spam-site.com");
options.BlockedTLDs.Add(".suspicious");
options.BlockedPatterns.Add("malicious");
options.BlockedSubdomainPrefixes.Add("bot");
});
Block subdomain prefixes with numeric variations
The BlockedSubdomainPrefixes option allows you to block subdomains that start with a specific prefix followed by optional digits.
app.UseReferrerBlock(options =>
{
// Block subdomains like: iqri., iqri1., iqri18., hk., hk1., hk12., etc.
options.BlockedSubdomainPrefixes.Add("iqri");
options.BlockedSubdomainPrefixes.Add("hk");
options.BlockedSubdomainPrefixes.Add("spam");
});
This will block referrers like:
iqri.example.comโ blockediqri1.spammer.netโ blockediqri18.malicious.orgโ blockedhk12.badsite.comโ blocked
But will NOT block:
iqri1x.example.comโ not blocked (has letters after digits)myiqri1.example.comโ not blocked (prefix not at start)iqrisite.comโ not blocked (in domain name, not subdomain)
๐ Performance
The middleware is optimized for high-performance scenarios using ReadOnlySpan<char> instead of traditional Uri parsing, resulting in minimal memory allocations.
Benchmark Results
BenchmarkDotNet v0.15.8, Windows 11, Intel Core i9-9900K CPU 3.60GHz
.NET 9.0.12, X64 RyuJIT x86-64-v3
| Method | Mean | Allocated | Improvement |
|---|---|---|---|
| โ Optimized (Span) | 1.243 ยตs | 704 B | Baseline |
| โ Original (Uri) | 6.892 ยตs | 9,952 B | - |
| Metric | Gain |
|---|---|
| Speed | 5.5x faster |
| Memory | 14x less allocations |
Run benchmarks yourself:
cd benchmarks/AspNetCore.ReferrerBlock.Benchmarks
dotnet run -c Release
๐ Blocked Domains
See BLOCKED_DOMAINS.md for the complete list of blocked domains, TLDs, and patterns with their addition history.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.2.28 | 97 | 2/28/2026 |
| 2026.2.15 | 105 | 2/15/2026 |
| 2026.2.10 | 113 | 2/10/2026 |
| 2026.2.8 | 98 | 2/8/2026 |
| 2026.2.6 | 96 | 2/6/2026 |
| 2026.2.5 | 100 | 2/5/2026 |
| 2026.2.1 | 105 | 2/1/2026 |
| 2026.1.26 | 118 | 1/26/2026 |
| 2026.1.22 | 104 | 1/22/2026 |
| 2026.1.16 | 103 | 1/16/2026 |
| 2026.1.14 | 106 | 1/14/2026 |
| 2026.1.11 | 109 | 1/11/2026 |
| 2026.1.8 | 108 | 1/8/2026 |
| 2026.1.5 | 116 | 1/5/2026 |
| 2026.1.1 | 117 | 1/1/2026 |
| 2025.12.31 | 104 | 12/30/2025 |
| 2025.12.30 | 112 | 12/30/2025 |
| 2025.12.27 | 120 | 12/27/2025 |
| 2025.12.26 | 165 | 12/26/2025 |
| 2025.12.22 | 203 | 12/23/2025 |
Initial release with referrer blocking capabilities.