pub struct StaticPayloads { /* private fields */ }Expand description
A static payload source that holds payloads directly in memory.
This is useful for users who generate payloads externally and want to use them with the attackstr ecosystem.
§Thread Safety
StaticPayloads is Send and Sync.
§Example
use attackstr::{StaticPayloads, Payload, PayloadSource};
let payloads = vec![
Payload {
text: "test".into(),
category: "custom".into(),
technique: "manual".into(),
context: "default".into(),
encoding: "raw".into(),
cwe: None,
severity: None,
confidence: 1.0,
expected_pattern: None,
target_media_type: None,
},
];
let mut source = StaticPayloads::new(payloads);
assert_eq!(source.payloads("custom").len(), 1);Implementations§
Source§impl StaticPayloads
impl StaticPayloads
Sourcepub fn new(payloads: Vec<Payload>) -> Self
pub fn new(payloads: Vec<Payload>) -> Self
Create a new StaticPayloads from a vector of payloads.
Example:
use attackstr::{Payload, StaticPayloads};
let payloads = vec![Payload {
text: "alert(1)".into(),
category: "xss".into(),
technique: "basic".into(),
context: "default".into(),
encoding: "raw".into(),
cwe: None,
severity: None,
confidence: 1.0,
expected_pattern: None,
target_media_type: None,
}];
let source = StaticPayloads::new(payloads);
assert_eq!(source.all_payloads().len(), 1);Sourcepub fn add(&mut self, payload: Payload)
pub fn add(&mut self, payload: Payload)
Add a single payload to this source.
Example:
use attackstr::{Payload, StaticPayloads};
let mut source = StaticPayloads::default();
source.add(Payload {
text: "test".into(),
category: "custom".into(),
technique: "manual".into(),
context: "default".into(),
encoding: "raw".into(),
cwe: None,
severity: None,
confidence: 1.0,
expected_pattern: None,
target_media_type: None,
});
assert_eq!(source.all_payloads().len(), 1);Sourcepub fn all_payloads(&self) -> &[Payload]
pub fn all_payloads(&self) -> &[Payload]
Get all payloads regardless of category.
Example:
use attackstr::StaticPayloads;
let source = StaticPayloads::default();
assert!(source.all_payloads().is_empty());Sourcepub fn iter(&self) -> impl Iterator<Item = &Payload>
pub fn iter(&self) -> impl Iterator<Item = &Payload>
Iterate over all payloads in this source.
Example:
use attackstr::StaticPayloads;
let source = StaticPayloads::default();
assert_eq!(source.iter().count(), 0);Sourcepub fn iter_category<'a>(
&'a self,
category: &'a str,
) -> impl Iterator<Item = &'a Payload> + 'a
pub fn iter_category<'a>( &'a self, category: &'a str, ) -> impl Iterator<Item = &'a Payload> + 'a
Iterate over payloads for a single category.
Example:
use attackstr::{Payload, StaticPayloads};
let source = StaticPayloads::new(vec![Payload {
text: "alert(1)".into(),
category: "xss".into(),
technique: "basic".into(),
context: "default".into(),
encoding: "raw".into(),
cwe: None,
severity: None,
confidence: 1.0,
expected_pattern: None,
target_media_type: None,
}]);
assert_eq!(source.iter_category("xss").count(), 1);Trait Implementations§
Source§impl Clone for StaticPayloads
impl Clone for StaticPayloads
Source§fn clone(&self) -> StaticPayloads
fn clone(&self) -> StaticPayloads
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StaticPayloads
impl Debug for StaticPayloads
Source§impl Default for StaticPayloads
impl Default for StaticPayloads
Source§fn default() -> StaticPayloads
fn default() -> StaticPayloads
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for StaticPayloads
impl<'de> Deserialize<'de> for StaticPayloads
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for StaticPayloads
impl Display for StaticPayloads
impl Eq for StaticPayloads
Source§impl PartialEq for StaticPayloads
impl PartialEq for StaticPayloads
Source§impl PayloadSource for StaticPayloads
impl PayloadSource for StaticPayloads
Source§impl Serialize for StaticPayloads
impl Serialize for StaticPayloads
impl StructuralPartialEq for StaticPayloads
Auto Trait Implementations§
impl Freeze for StaticPayloads
impl RefUnwindSafe for StaticPayloads
impl Send for StaticPayloads
impl Sync for StaticPayloads
impl Unpin for StaticPayloads
impl UnsafeUnpin for StaticPayloads
impl UnwindSafe for StaticPayloads
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.