App-FargateStack
view release on metacpan or search on metacpan
The framework supports both individual rule sets and pre-configured
"bundles" for common application types. It also supports a subtractive
syntax (prefixing a keyword with a `-`) to remove rule sets from a
bundle.
#### Rule Set Keywords
- **base**: A strong baseline including `AWSManagedRulesCommonRuleSet`, `AWSManagedRulesAmazonIpReputationList`, and `AWSManagedRulesKnownBadInputsRuleSet`.
- **admin**: Protects exposed administrative pages (`AWSManagedRulesAdminProtectionRuleSet`).
- **sql**: Protects against SQL injection attacks (`AWSManagedRulesSQLiRuleSet`).
- **linux**: Includes rules for Linux and Unix-like environments.
- **php**: Includes rules for applications running on PHP.
- **wordpress**: Includes rules specific to WordPress sites.
- **windows**: Includes rules for Windows Server environments.
- **anonymous**: **Use with caution.** Blocks traffic from anonymous sources like VPNs and proxies, which may block legitimate users.
- **ddos**: Mitigates application-layer (Layer 7) DDoS attacks like HTTP floods.
- **premium**: **Warning: Extra Cost.** Enables advanced, paid protections for bot control and account takeover prevention.
#### Rule Bundles
- **default**: Includes `base` and `sql`. This is the recommended starting point for most applications.
lib/App/FargateStack/Builder/Utils.pm view on Meta::CPAN
Use the C<fetch_*> methods to retrieve an instance of one of the AWS
API classes. The fetch method caches class instances and instantiates
them if necessary by providing common arguments (like profile).
my $ecs = $self->fetch_ecs;
=head2 normalize_time_range
my ($from_ms, $to_ms) = normalize_time_range($start, $end);
Normalizes a human-friendly time range into Unix epoch timestamps in
**milliseconds**.
Given a required C<$start> and an optional C<$end>, this routine parses
each value into epoch seconds (using L<Date::Parse/str2time> for absolute
dates, or a compact âdurationâ syntax), validates the range, and returns
a two-element list: C<(start_ms, end_ms_or_undef)>.
Returns an empty list if C<$start> is false/undefined (useful for
âno time filterâ cases).
lib/App/FargateStack/Builder/Utils.pm view on Meta::CPAN
=item * C<duration cannot be zero> for C<0d>, C<0h>, or C<0m>.
=item * C<unrecognized date format: [VALUE]> if C<str2time> cannot parse.
=back
=back
=head3 Returns
A two-element list in **milliseconds since the Unix epoch**:
( $start_ms, $end_ms_or_undef )
B<List context is expected.> In scalar context, Perl will return the last
element of the list (which may be C<undef>); donât rely on that.
=head3 Examples
# Last 15 minutes, open-ended end:
my ($from, $to) = normalize_time_range('15m'); # $to is undef
lib/App/FargateStack/Constants.pm view on Meta::CPAN
)
],
admin => [
qw(
AWSManagedRulesAdminProtectionRuleSet
)
],
linux => [
qw(
AWSManagedRulesLinuxRuleSet
AWSManagedRulesUnixRuleSet
)
],
wordpress => [
qw(
AWSManagedRulesWordPressRuleSet
)
],
windows => [
qw(
AWSManagedRulesWindowsRuleSet
lib/App/FargateStack/Pod.pm view on Meta::CPAN
=head4 Rule Set Keywords
=over 4
=item * B<base>: A strong baseline including C<AWSManagedRulesCommonRuleSet>, C<AWSManagedRulesAmazonIpReputationList>, and C<AWSManagedRulesKnownBadInputsRuleSet>.
=item * B<admin>: Protects exposed administrative pages (C<AWSManagedRulesAdminProtectionRuleSet>).
=item * B<sql>: Protects against SQL injection attacks (C<AWSManagedRulesSQLiRuleSet>).
=item * B<linux>: Includes rules for Linux and Unix-like environments.
=item * B<php>: Includes rules for applications running on PHP.
=item * B<wordpress>: Includes rules specific to WordPress sites.
=item * B<windows>: Includes rules for Windows Server environments.
=item * B<anonymous>: B<Use with caution.> Blocks traffic from anonymous sources like VPNs and proxies, which may block legitimate users.
=item * B<ddos>: Mitigates application-layer (Layer 7) DDoS attacks like HTTP floods.
share/README.md view on Meta::CPAN
The framework supports both individual rule sets and pre-configured
"bundles" for common application types. It also supports a subtractive
syntax (prefixing a keyword with a `-`) to remove rule sets from a
bundle.
#### Rule Set Keywords
- **base**: A strong baseline including `AWSManagedRulesCommonRuleSet`, `AWSManagedRulesAmazonIpReputationList`, and `AWSManagedRulesKnownBadInputsRuleSet`.
- **admin**: Protects exposed administrative pages (`AWSManagedRulesAdminProtectionRuleSet`).
- **sql**: Protects against SQL injection attacks (`AWSManagedRulesSQLiRuleSet`).
- **linux**: Includes rules for Linux and Unix-like environments.
- **php**: Includes rules for applications running on PHP.
- **wordpress**: Includes rules specific to WordPress sites.
- **windows**: Includes rules for Windows Server environments.
- **anonymous**: **Use with caution.** Blocks traffic from anonymous sources like VPNs and proxies, which may block legitimate users.
- **ddos**: Mitigates application-layer (Layer 7) DDoS attacks like HTTP floods.
- **premium**: **Warning: Extra Cost.** Enables advanced, paid protections for bot control and account takeover prevention.
#### Rule Bundles
- **default**: Includes `base` and `sql`. This is the recommended starting point for most applications.
( run in 0.723 second using v1.01-cache-2.11-cpan-64ef6c95b5d )