ASP.NET Core Installation
Install ByteHide Monitor in your ASP.NET Core application using dependency injection and middleware for real-time web protection.
Requirements
- ASP.NET Core 3.1, 5.0, 6.0, 7.0, 8.0, or 9.0
- NuGet:
ByteHide.Monitorpackage
Step 1: Install the Package
Bash
dotnet add package ByteHide.Monitordotnet add package ByteHide.MonitorStep 2: Configure Services
In your Program.cs (or Startup.cs for older projects):
C#
builder.Services.AddByteHideMonitor(monitor =>
{
// Enable web protection modules
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.PathTraversal, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CommandInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.ServerSideRequestForgery, ActionType.Block);
});builder.Services.AddByteHideMonitor(monitor =>
{
// Enable web protection modules
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.PathTraversal, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CommandInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.ServerSideRequestForgery, ActionType.Block);
});Step 3: Add Middleware
C#
app.UseByteHideMonitor();app.UseByteHideMonitor();Place it early in the middleware pipeline, before app.UseRouting() and app.UseAuthorization(), so Monitor can intercept requests before they reach your application logic.
Step 4: Run
Bash
dotnet rundotnet runMonitor is now intercepting and validating all incoming requests against the enabled protection modules.
Full Example (Program.cs)
C#
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddByteHideMonitor(monitor =>
{
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.PathTraversal, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.ServerSideRequestForgery, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.NoSqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.LdapInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.XmlExternalEntity, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CommandInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.LlmPromptInjection, ActionType.Block);
});
var app = builder.Build();
app.UseByteHideMonitor();
app.UseRouting();
app.UseAuthorization();
app.MapControllers();
app.Run();var builder = WebApplication.CreateBuilder(args);
builder.Services.AddByteHideMonitor(monitor =>
{
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.PathTraversal, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.ServerSideRequestForgery, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.NoSqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.LdapInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.XmlExternalEntity, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CommandInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.LlmPromptInjection, ActionType.Block);
});
var app = builder.Build();
app.UseByteHideMonitor();
app.UseRouting();
app.UseAuthorization();
app.MapControllers();
app.Run();Combining with Desktop Protections
You can enable both web interceptors and desktop protection modules in the same ASP.NET Core application:
C#
builder.Services.AddByteHideMonitor(monitor =>
{
// Web protections (middleware-based)
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.Block);
});
// Additionally enable desktop protections (background checks)
await Bytehide.Monitor.Payload.ConfigureAsync(config =>
{
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.Close, intervalMs: 60000);
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.Log, intervalMs: 120000);
});builder.Services.AddByteHideMonitor(monitor =>
{
// Web protections (middleware-based)
monitor.WithProtection(ProtectionModuleType.SqlInjection, ActionType.Block);
monitor.WithProtection(ProtectionModuleType.CrossSiteScripting, ActionType.Block);
});
// Additionally enable desktop protections (background checks)
await Bytehide.Monitor.Payload.ConfigureAsync(config =>
{
config.AddProtection(ProtectionModuleType.DebuggerDetection, ActionType.Close, intervalMs: 60000);
config.AddProtection(ProtectionModuleType.TamperingDetection, ActionType.Log, intervalMs: 120000);
});