Skip to content

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"
    }
  }]
});