pub struct ModSecurity { /* private fields */ }Expand description
Actix-Web compatible wrapper on ModSecurity
Implementations§
Source§impl ModSecurity
impl ModSecurity
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new ModSecurity instance.
Because of implementation specifics of LibModSecurity, it is recommended only once instance exist within the program.
See modsecurity::msc::ModSecurity
for more details.
Sourcepub fn add_rules(&mut self, rules: &str) -> Result<&mut Self, Error>
pub fn add_rules(&mut self, rules: &str) -> Result<&mut Self, Error>
Adds plain rules from string into the set.
§Examples
use actix_modsecurity::ModSecurity;
let mut security = ModSecurity::new();
security.add_rules("SecRuleEngine On\n").expect("Failed to add rules");Sourcepub fn add_rules_file<P: AsRef<Path>>(
&mut self,
file: P,
) -> Result<&mut Self, Error>
pub fn add_rules_file<P: AsRef<Path>>( &mut self, file: P, ) -> Result<&mut Self, Error>
Adds rules from a file into the set.
§Examples
use actix_modsecurity::ModSecurity;
let mut security = ModSecurity::new();
security.add_rules_file("/path/to/rules.conf").expect("Failed to add rules from file");Sourcepub fn set_max_request_size(
&mut self,
max_request_body: Option<usize>,
) -> &mut Self
pub fn set_max_request_size( &mut self, max_request_body: Option<usize>, ) -> &mut Self
Configure Max request body size allowed to be loaded into memory for processing.
This avoids out-of-memory errors and potential security-risks from attackers overloading your web-service.
Sourcepub fn set_max_response_size(
&mut self,
max_response_body: Option<usize>,
) -> &mut Self
pub fn set_max_response_size( &mut self, max_response_body: Option<usize>, ) -> &mut Self
Configure Max response body size allowed to be loaded into memory for processing.
This avoids out-of-memory errors and potential security-risks from attackers overloading your web-service.
Sourcepub fn set_server_address(
&mut self,
server_address: Option<(String, u16)>,
) -> &mut Self
pub fn set_server_address( &mut self, server_address: Option<(String, u16)>, ) -> &mut Self
Include server bindings information to include in transaction processing.
Allows Transaction::process_connection
to work as intended rather than skip over connection information.
Sourcepub fn transaction(&self) -> Result<Transaction<'_>, Error>
pub fn transaction(&self) -> Result<Transaction<'_>, Error>
Creates a configured LibModSecurity Transaction with the configured rules.
Sourcepub fn middleware(self) -> Middleware
pub fn middleware(self) -> Middleware
Converts ModSecurity Instance into Actix-Web Middleware
§Examples
use actix_web::App;
use actix_modsecurity::ModSecurity;
let mut security = ModSecurity::new();
security.add_rules("SecRuleEngine On\n").expect("Failed to add rules");
let app = App::new()
.wrap(security.middleware());