{
  "slug": "sql-injection-scanner",
  "name": "gizza-ai/sql-injection-scanner",
  "version": "0.1.0",
  "title": "SQL Injection Scanner — Find Unparameterized Queries in Code — gizza.ai",
  "description": "Paste code and flag SQL built by string concatenation, f-strings, or format calls instead of bound parameters. Runs in your browser, nothing uploaded.",
  "tags": [
    "sql injection scanner",
    "sqli static analysis",
    "unparameterized query detector",
    "sql string concatenation",
    "parameterized query checker",
    "secure code review",
    "sql injection linter",
    "prepared statement checker"
  ],
  "category": "developer",
  "urls": {
    "page": "https://gizza.ai/tools/sql-injection-scanner/",
    "markdown": "https://gizza.ai/tools/sql-injection-scanner/index.md",
    "descriptor": "https://gizza.ai/tools/sql-injection-scanner/tool.json",
    "deep_link_example": "https://gizza.ai/tools/sql-injection-scanner/?code=query%20%3D%20%22SELECT%20%2A%20FROM%20users%20WHERE%20name%20%3D%20%27%22%20%2B%20name%20%2B%20%22%27%22&language=auto&min_severity=all&format=text"
  },
  "cli": "gizza tool sql-injection-scanner \"query = \\\"SELECT * FROM users WHERE name = '\\\" + name + \\\"'\\\"\"",
  "tool": {
    "description": "Statically scan a code snippet for SQL-injection-prone query construction. Flags SQL assembled from variables instead of bound parameters: string concatenation (\"… \" + name, PHP . $name), string interpolation (Python f-strings, JS/TS template literals ${…}, C# $\"…\", Ruby #{…}), and format/printf building (\"…\".format(), \"…\" % v, sprintf/Sprintf/String.Format). Also warns (medium) when a bare variable is passed to execute()/query(). Each finding reports line, column, severity, a rule id, and the offending line; parameterized calls like execute(sql, params) are recognized as safe. Params: code (the snippet), language (auto|python|php|javascript|typescript|java|csharp|go|ruby — scopes the patterns), min_severity (all|high), format (text|json). It never runs the code or connects to a database — a heuristic aid, not a guarantee. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "description": "The source code snippet to scan (one or more lines that build/run SQL).",
          "type": "string"
        },
        "format": {
          "default": "text",
          "description": "Output format: text (default) a readable report, or json (structured findings).",
          "enum": [
            "text",
            "json"
          ],
          "type": "string"
        },
        "language": {
          "default": "auto",
          "description": "Language hint. auto (default) applies every syntax; a specific language restricts the concatenation/interpolation patterns to that language (fewer false positives) and tailors the fix example.",
          "enum": [
            "auto",
            "python",
            "php",
            "javascript",
            "typescript",
            "java",
            "csharp",
            "go",
            "ruby"
          ],
          "type": "string"
        },
        "min_severity": {
          "default": "all",
          "description": "Which findings to report: all (default) shows high + medium; high shows only high-severity findings.",
          "enum": [
            "all",
            "high"
          ],
          "type": "string"
        }
      },
      "required": [
        "code"
      ],
      "type": "object"
    }
  }
}