SQL Detector
The sqld service type implements SQL injection attack detection. Regular expressions and a GRU recurrent neural network are used to detect SQL injection attacks.
The available service settings are as follows:
| Name | Type | Description | 
| file | string | An optional file name for custom neural network weights | 
The available input for the request are as follows:
| Name | Type | Description | 
| payload | JSON object | A payload to do SQL injection attack detection on | 
The available response outputs are as follows:
| Name | Type | Description | 
| attack | number | The probability that the payload is a SQL injection attack | 
| attackValues | JSON object | The SQL injection attack probability for each string in the payload | 
A sample service definition is:
{
  "name": "SQLSecurity",
  "description": "Look for sql injection attacks",
  "ref": "github.com/AiRISTAFlowInc/fs-microgateway/activity/sqld"
}
An example step that invokes the above SQLSecurity service using payload is:
{
  "service": "SQLSecurity",
  "input": {
    "payload": "=$.payload"
  }
}
Utilizing the response values can be seen in a response handler:
{
  "if": "$.SQLSecurity.outputs.attack > 80",
  "error": true,
  "output": {
    "code": 403,
    "data": {
      "error": "hack attack!",
      "attackValues": "=$.SQLSecurity.outputs.attackValues"
    }
  }
}