AmsiScannerLib 1.2.0

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package AmsiScannerLib --version 1.2.0
                    
NuGet\Install-Package AmsiScannerLib -Version 1.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AmsiScannerLib" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AmsiScannerLib" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="AmsiScannerLib" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AmsiScannerLib --version 1.2.0
                    
#r "nuget: AmsiScannerLib, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AmsiScannerLib@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AmsiScannerLib&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=AmsiScannerLib&version=1.2.0
                    
Install as a Cake Tool

AmsiScannerLib

Version: 1.2.0 Target Framework: .NET 8.0 Author: Tapas Mahata / Nihilent Ltd License: MIT Repository: GitLab


Overview

AmsiScannerLib is an ASP.NET Core middleware library that integrates with Windows AMSI (Antimalware Scan Interface) to scan incoming HTTP requests for malicious content. It supports:

  • JSON payload scanning
  • Uploaded file scanning (including Base64-decoded content)
  • Controller-level or action-level scanning toggle via [AmsiScan] attribute

By default, scanning is disabled and must be explicitly enabled on controllers or actions.


Features

  • JSON payload scanning
  • File scanning with Base64 support
  • Controller or action level toggle using [AmsiScan]
  • Default scanning is OFF (secure by default)
  • Fully compatible with .NET 8
  • Easy integration via middleware

Installation

.NET CLI

dotnet add package AmsiScannerLib --version 1.0.0

Package Manager

Install-Package AmsiScannerLib -Version 1.0.0

Usage

1. Register the middleware in Program.cs

builder.Services.AddSingleton<IAmsiScanner, AmsiScanner>();

var app = builder.Build();

app.UseRouting();
app.UseMiddleware<AmsiMiddleware>(); // AMSI scanning runs here
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();

2. Enable scanning via [AmsiScan] attribute

[ApiController]
[Route("api/[controller]")]
[AmsiScan] // Enables scanning for all actions
public class PayloadController : ControllerBase
{
    [HttpPost("check")]
    public IActionResult Check([FromBody] object data) => Ok("Scanned");

    [HttpPost("skip")]
    [AmsiScan(false)] // Disables scanning for this action
    public IActionResult Skip([FromBody] object data) => Ok("Skipped");
}

Behavior

  • Middleware checks the [AmsiScan] attribute on controller and action.
  • Action-level [AmsiScan(false)] overrides controller-level scanning.
  • Scans JSON payloads and files; blocks malicious content with HTTP 400.
  • If [AmsiScan] is missing, scanning is disabled by default.

Requirements

  • .NET 8.0 or higher
  • Windows OS with AMSI enabled

Notes

  • Place app.UseMiddleware<AmsiMiddleware>() after app.UseRouting() to ensure endpoint metadata is available.
  • JSON fields and uploaded files are scanned recursively.
  • Works seamlessly in ASP.NET Core 8 applications.

License

MIT License. See LICENSE file for details.


Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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