31 lines
779 B
C#
31 lines
779 B
C#
using Ganss.Xss;
|
|
using NexusReader.Application.Abstractions.Services;
|
|
|
|
namespace NexusReader.Infrastructure.Services;
|
|
|
|
/// <summary>
|
|
/// Infrastructure implementation of ISanitizerService using the Ganss.Xss HtmlSanitizer library.
|
|
/// </summary>
|
|
public class HtmlSanitizerService : ISanitizerService
|
|
{
|
|
private readonly HtmlSanitizer _sanitizer;
|
|
|
|
public HtmlSanitizerService()
|
|
{
|
|
_sanitizer = new HtmlSanitizer();
|
|
|
|
// Use default configuration which is extremely secure and strips
|
|
// all JavaScript (script tags, onerror, onload, iframe, etc.)
|
|
}
|
|
|
|
public string Sanitize(string input)
|
|
{
|
|
if (string.IsNullOrEmpty(input))
|
|
{
|
|
return input;
|
|
}
|
|
|
|
return _sanitizer.Sanitize(input);
|
|
}
|
|
}
|