mrapids 0.1.31

Your OpenAPI, but executable
Documentation
pub mod url_validator;
pub mod file_sandbox;
pub mod config;

pub use url_validator::{UrlValidator, ValidatedUrl};
pub use file_sandbox::{FileSandbox, SafePath};
pub use config::SecurityConfig;

#[derive(Debug, thiserror::Error)]
pub enum SecurityError {
    #[error("Invalid URL scheme: {0}")]
    InvalidScheme(String),
    
    #[error("Blocked IP address: {0}")]
    BlockedIP(std::net::IpAddr),
    
    #[error("Private IP address not allowed: {0}")]
    PrivateIP(std::net::IpAddr),
    
    #[error("Metadata endpoint detected: {0}")]
    MetadataEndpoint(String),
    
    #[error("Path traversal attempt detected")]
    PathTraversal,
    
    #[error("File access denied: {0}")]
    FileAccessDenied(String),
    
    #[error("Invalid port: {0}")]
    InvalidPort(u16),
    
    #[error("Too many redirects")]
    TooManyRedirects,
    
    #[error("DNS resolution failed: {0}")]
    DnsError(String),
    
    #[error("Invalid configuration: {0}")]
    ConfigError(String),
}