pub struct NeutralizationConfig {
pub mode: NeutralizationMode,
pub backup_originals: bool,
pub audit_all_actions: bool,
pub unicode: UnicodeNeutralizationConfig,
pub injection: InjectionNeutralizationConfig,
pub recovery: Option<RecoveryConfig>,
}Expand description
Configuration for neutralization
§Security Implications
Neutralization transforms detected threats into safe content:
- Mode selection - Balance between security and data integrity
- Backup strategy - Enables recovery but requires secure storage
- Audit requirements - Essential for compliance and forensics
- Recovery handling - Prevents neutralization failures from causing outages
§Example: Secure Production Configuration
[neutralization]
mode = "automatic" # Auto-neutralize threats
backup_originals = true # Keep originals for recovery
audit_all_actions = true # Full audit trail
[neutralization.unicode]
bidi_replacement = "marker" # Visible markers for BiDi
zero_width_action = "remove" # Remove invisible chars
homograph_action = "ascii" # Convert to ASCII
[neutralization.injection]
sql_action = "parameterize" # Convert to safe queries
command_action = "escape" # Escape shell metacharacters
path_action = "normalize" # Resolve to safe paths
prompt_action = "wrap" # Add safety boundaries
[neutralization.recovery]
enabled = true
max_retries = 3
backoff_ms = 100Fields§
§mode: NeutralizationModeNeutralization mode
Default: ReportOnly (safe default) Security Trade-offs:
ReportOnly: Detects but doesn’t modify (safe for testing)Interactive: Requires user confirmation (good for sensitive data)Automatic: Immediate protection (recommended for production)
backup_originals: boolBackup original content
Default: true (secure by default) Security: Enables recovery from false positives but requires secure storage. Backups should be encrypted and access-controlled. Warning: Disabling prevents recovery from mistakes
audit_all_actions: boolAudit all actions
Default: true (secure by default) Security: Creates forensic trail for all neutralization actions. Essential for compliance, debugging, and incident response. Storage: Ensure audit logs are tamper-proof and retained properly
unicode: UnicodeNeutralizationConfigUnicode-specific settings
Security: Controls how unicode-based threats are neutralized. Different strategies balance security vs. internationalization needs.
injection: InjectionNeutralizationConfigInjection-specific settings
Security: Defines how various injection attacks are neutralized. Each injection type requires specific handling to maintain functionality.
recovery: Option<RecoveryConfig>Recovery configuration for handling failures
Default: Enabled with sensible retry settings Security: Prevents neutralization failures from causing service outages. Implements circuit breakers and exponential backoff.
Trait Implementations§
Source§impl Clone for NeutralizationConfig
impl Clone for NeutralizationConfig
Source§fn clone(&self) -> NeutralizationConfig
fn clone(&self) -> NeutralizationConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NeutralizationConfig
impl Debug for NeutralizationConfig
Source§impl Default for NeutralizationConfig
impl Default for NeutralizationConfig
Source§impl<'de> Deserialize<'de> for NeutralizationConfig
impl<'de> Deserialize<'de> for NeutralizationConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for NeutralizationConfig
impl RefUnwindSafe for NeutralizationConfig
impl Send for NeutralizationConfig
impl Sync for NeutralizationConfig
impl Unpin for NeutralizationConfig
impl UnwindSafe for NeutralizationConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more