Gaiato.Net.Extensions 1.0.14

dotnet add package Gaiato.Net.Extensions --version 1.0.14                
NuGet\Install-Package Gaiato.Net.Extensions -Version 1.0.14                
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="Gaiato.Net.Extensions" Version="1.0.14" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Gaiato.Net.Extensions --version 1.0.14                
#r "nuget: Gaiato.Net.Extensions, 1.0.14"                
#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.
// Install Gaiato.Net.Extensions as a Cake Addin
#addin nuget:?package=Gaiato.Net.Extensions&version=1.0.14

// Install Gaiato.Net.Extensions as a Cake Tool
#tool nuget:?package=Gaiato.Net.Extensions&version=1.0.14                

Gaiato.Net.Extensions

NuGet Build Status

Descri��o

Uma biblioteca de extens�es .NET para sanitiza��o segura de strings HTML, oferecendo prote��o contra XSS (Cross-Site Scripting) e outras vulnerabilidades de seguran�a.

Instala��o

dotnet add package Gaiato.Net.Extensions

Funcionalidades

  • Remo��o de tags HTML perigosas e seu conte�do
  • Remo��o de atributos potencialmente maliciosos
  • Filtragem de protocolos n�o permitidos
  • Remo��o de express�es JavaScript/CSS perigosas
  • Codifica��o HTML de caracteres especiais
  • Preserva��o opcional de quebras de linha
  • Prote��o contra ReDoS (Regex Denial of Service)
  • Alta performance com Regex compilados

Como Usar

Uso B�sico

using Gaiato.Net.Extensions;

string conteudoPerigoso = "<script>alert('xss')</script>Ol�, mundo!";
string conteudoSeguro = conteudoPerigoso.ToSafe();
// Resultado: "Ol�, mundo!"

Preservando Quebras de Linha

string textoFormatado = @"Primeira linha
Segunda linha
Terceira linha";

string resultadoComQuebras = textoFormatado.ToSafe(preserveNewLines: true);
// Mant�m as quebras de linha no resultado

Exemplos de Sanitiza��o

// Remove tags perigosas
string html = "<iframe src='malicious.com'></iframe><p>Conte�do seguro</p>";
string resultado = html.ToSafe();
// Resultado: "<p>Conte�do seguro</p>"

// Remove atributos maliciosos
html = "<img src='foto.jpg' onerror='alert(1)' />";
resultado = html.ToSafe();
// Remove o atributo onerror

// Remove protocolos n�o permitidos
html = "<a href='javascript:alert(1)'>Link</a>";
resultado = html.ToSafe();
// Remove o protocolo javascript:

// Codifica caracteres especiais
html = "<p>Tags & S�mbolos</p>";
resultado = html.ToSafe();
// Codifica caracteres especiais como &amp;

Tratamento de Valores Nulos ou Vazios

string? nulo = null;
string resultado = nulo.ToSafe(); // Retorna string.Empty

string vazia = "";
resultado = vazia.ToSafe(); // Retorna string.Empty

string apenasEspacos = "   ";
resultado = apenasEspacos.ToSafe(); // Retorna string.Empty

Lista de Tags Bloqueadas

  • script
  • iframe
  • object
  • embed
  • form
  • style
  • meta
  • link
  • applet
  • frame
  • frameset
  • html
  • body
  • head
  • base
  • template
  • svg
  • math
  • video
  • audio

Lista de Protocolos Permitidos

  • http://
  • https://
  • mailto:
  • tel:
  • sms:

Desempenho

A biblioteca utiliza v�rias otimiza��es para garantir o melhor desempenho poss�vel:

  • Source Generators para Regex (requer .NET 7+)
  • HashSet para busca eficiente de tags e atributos
  • Compara��es case-insensitive otimizadas
  • Tratamento eficiente de strings

Seguran�a

A biblioteca implementa v�rias camadas de prote��o:

  • Remo��o completa de tags perigosas e seu conte�do
  • Sanitiza��o de atributos HTML maliciosos
  • Prote��o contra ataques baseados em express�es CSS
  • Filtragem de protocolos n�o seguros
  • Codifica��o HTML de caracteres especiais
  • Tratamento seguro de exce��es
  • Prote��o contra ataques ReDoS

Requisitos

  • .NET 7.0 ou superior
  • C# 11.0 ou superior

Licen�a

MIT

Contribuindo

Contribui��es s�o bem-vindas! Por favor, sinta-se � vontade para submeter pull requests.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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
1.0.14 104 12/16/2024