public void Initialize()
        {
            optionCategories.Clear();

            var section = configuration.GetSection("Sanitizer");

            var key = DefaultCategory;

            SanitizerOptions = section.Get <SanitizerOptions>();
            var sanitizer = new Sanitizer(SanitizerOptions);

            optionCategories.Add(key, sanitizer);
        }
Exemple #2
0
        public static JToken SanitizeObject(JToken obj, SanitizerOptions options)
        {
            void SanitizeObjectInternal(JToken innerObj)
            {
                switch (innerObj)
                {
                case JObject jObject:
                    var props = jObject.Properties().Select(x => x.Name).ToList();

                    foreach (var propertyName in props)
                    {
                        var propertyNameLower = propertyName.ToLower();

                        if (options.RemoveFields != null && options.RemoveFields.Contains(propertyNameLower))
                        {
                            jObject.Remove(propertyName);
                        }
                        else if (options.ReplaceWithValue != null && options.ReplaceWithValue.TryGetValue(propertyNameLower, out var replacement))
                        {
                            jObject[propertyName] = replacement;
                        }
                        else
                        {
                            SanitizeObjectInternal(jObject[propertyName]);
                        }
                    }

                    break;

                case JArray jArray:
                    foreach (var jToken in jArray)
                    {
                        SanitizeObjectInternal(jToken);
                    }
                    break;
                }
            }

            var clone = obj.DeepClone();

            SanitizeObjectInternal(clone);
            return(clone);
        }
 public CreditCardSanitizer()
 {
     Options = new SanitizerOptions();
     Options.InvalidCharacters = new char[] { '-', ' ' };
 }
Exemple #4
0
 public Sanitizer(SanitizerOptions options)
 {
     this.options  = options;
     htmlSanitizer = new HtmlSanitizer();
     ConfigureHtmlSanitizer();
 }
 public TelephoneSanitizer()
 {
     Options = new SanitizerOptions();
     Options.InvalidCharacters = new char[] { '-', '(', ')' };
 }
Exemple #6
0
 public SocialSecuritySanitizer()
 {
     Options = new SanitizerOptions();
     Options.InvalidCharacters = new char[] { '-' };
 }