SqlInjectionMatchSet ​
The SqlInjectionMatchSet resource allows you to define a set of SQL injection match tuples that can be used to identify SQL injection attacks in web requests. For more information, refer to the AWS WAFRegional SqlInjectionMatchSets documentation.
Minimal Example ​
Create a basic SqlInjectionMatchSet with one SQL injection match tuple.
ts
import AWS from "alchemy/aws/control";
const sqlInjectionMatchSet = await AWS.WAFRegional.SqlInjectionMatchSet("basicSqlInjectionMatchSet", {
Name: "BasicSQLInjectionSet",
SqlInjectionMatchTuples: [{
FieldToMatch: {
Type: "QUERY_STRING"
},
TextTransformation: "URL_DECODE",
TargetString: "SELECT * FROM"
}]
});
Advanced Configuration ​
Configure a SqlInjectionMatchSet with multiple SQL injection match tuples for enhanced protection.
ts
const advancedSqlInjectionMatchSet = await AWS.WAFRegional.SqlInjectionMatchSet("advancedSqlInjectionMatchSet", {
Name: "AdvancedSQLInjectionSet",
SqlInjectionMatchTuples: [
{
FieldToMatch: {
Type: "BODY"
},
TextTransformation: "URL_DECODE",
TargetString: "DROP TABLE"
},
{
FieldToMatch: {
Type: "HEADER",
Data: "User-Agent"
},
TextTransformation: "LOWERCASE",
TargetString: "UNION SELECT"
}
]
});
Adoption of Existing Resource ​
If you want to adopt an existing SqlInjectionMatchSet without creating a new one, use the adopt
property.
ts
const existingSqlInjectionMatchSet = await AWS.WAFRegional.SqlInjectionMatchSet("existingSqlInjectionMatchSet", {
Name: "ExistingSQLInjectionSet",
adopt: true
});
Use Case: Associating with WebACL ​
Demonstrate how to associate a SqlInjectionMatchSet with a WebACL for comprehensive security.
ts
const webAclWithSqlInjectionProtection = await AWS.WAFRegional.WebACL("webAclWithSqlInjectionProtection", {
Name: "WebAclWithSQLInjectionProtection",
DefaultAction: {
Type: "ALLOW"
},
Rules: [{
Type: "REGULAR",
Priority: 1,
RuleId: sqlInjectionMatchSet.id, // Assuming this matches the ID of the created SqlInjectionMatchSet
Action: {
Type: "BLOCK"
}
}]
});