← 스킬 목록으로 돌아가기

sql-injection-scanner

v1.0.0 approved Security ⬇ 2 ↑ 2/7일 오늘 업데이트
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓

Static SQL injection vulnerability scanner for code review. Detects vulnerable patterns and suggests safe parameterized alternatives. Defensive use only — does not generate exploit payloads.

# sql-injection # security # static-analysis # code-review # owasp # defensive # parameterized-query # 보안 # 정적분석

기본 정보

소유자 👤 aiskillstore-team 카테고리 Security 등록일 2026-04-26 최종 업데이트 2026-04-26 최신 버전 1.0.0 패키지 날짜 2026-04-26 검증 상태 approved 다운로드 수 2회 체크섬 (SHA256) 96b1bf72799fbd46467094e5f3a299f9defda00a963b7375ec9e09a509996c4c

⚡ AGENT INFO USK v3

Capabilities
sql_injection_detection static_code_analysis secure_code_review vulnerability_scanning security_audit
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=OpenClaw GET /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=ClaudeCode GET /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=Cursor GET /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=GeminiCLI GET /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=CodexCLI GET /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

1
openclaw_skill_manager.py로 스킬을 설치합니다.
python openclaw_skill_manager.py --install sql-injection-scanner
2
설치 확인
python openclaw_skill_manager.py --list-installed
3
특정 버전 설치 (선택)
python openclaw_skill_manager.py --install sql-injection-scanner --version 1.0.0
1
스킬 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/skills/2ba64873-c945-45e3-a45d-2100464ca308/download
2
Claude Code commands 디렉터리에 배치합니다.
unzip sql-injection-scanner.skill -d ~/.claude/commands/sql-injection-scanner/
3
Claude Code에서 슬래시 커맨드로 사용합니다.
/sql-injection-scanner
1
Agent Skills 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=ClaudeCodeAgentSkill
2
Claude Code skills 디렉터리에 압축을 해제합니다.
unzip sql-injection-scanner-agent-skill-*.skill -d ~/.claude/skills/sql-injection-scanner/
3
Claude Code를 재시작하면 세션 시작 시 자동으로 로드됩니다. 슬래시 커맨드 없이 자연어로 사용 가능합니다.
1
Cursor 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=Cursor
2
압축 해제 후 영구 위치에 저장합니다.
unzip sql-injection-scanner-cursor-*.skill -d ~/.cursor/skills/sql-injection-scanner/
3
.cursor/mcp.json에 MCP 서버 설정을 추가하고 Cursor를 재시작합니다.
cat ~/.cursor/skills/sql-injection-scanner/cursor_mcp_config.json
1
Gemini CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=GeminiCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip sql-injection-scanner-geminicli-*.skill -d ~/.gemini/skills/sql-injection-scanner/
3
~/.gemini/settings.json에 MCP 서버 설정을 추가하고 Gemini CLI를 재시작합니다.
cat ~/.gemini/skills/sql-injection-scanner/gemini_settings_snippet.json
1
Codex CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/download?platform=CodexCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip sql-injection-scanner-codexcli-*.skill -d ~/.codex/skills/sql-injection-scanner/
3
~/.codex/config.toml에 MCP 서버 설정을 추가하고 Codex CLI를 재시작합니다.
cat ~/.codex/skills/sql-injection-scanner/codex_config_snippet.toml
1
REST API로 스킬 패키지를 다운로드합니다.
GET https://aiskillstore.io/v1/skills/2ba64873-c945-45e3-a45d-2100464ca308/download
2
에이전트 플랫폼의 skills 디렉터리에 배치합니다.
cp sql-injection-scanner.skill ./skills/
3
설치 가이드 API로 플랫폼별 상세 정보를 조회합니다.
GET https://aiskillstore.io/v1/skills/2ba64873-c945-45e3-a45d-2100464ca308/install-guide?platform=CustomAgent

보안 검증 보고서

검증 결과 APPROVED

검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)"]

✅ 보안 위험 항목이 발견되지 않았습니다.

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 SQL 인젝션 취약점 정적 분석 스킬로, 선언된 권한을 준수하며 악의적인 동작 없이 안전하게 작동합니다.
판단 근거

제출된 스킬 패키지 'sql-injection-scanner'에 대한 보안 검수 결과, 다음과 같은 판단 근거로 'approved' 판정을 내립니다. 1. **선언된 permissions(network/filesystem/subprocess)과 실제 코드 일치 여부:** * 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 명확히 선언되어 있습니다. * `main.py` 및 `lib` 디렉토리 내 모든 코드 파일을 검토한 결과, `requests`, `socket`, `urllib`, `subprocess`, `os.system`, `open()` (임의 파일 접근 목적), `shutil` 등 외부 통신, 파일 시스템 접근, 외부 프로세스 실행과 관련된 모듈이나 함수 호출이 전혀 발견되지 않았습니다. `os` 모듈은 `os.path.dirname`, `os.path.abspath`와 같이 현재 스크립트의 경로를 얻는 용도로만 사용되어 안전합니다. 모든 작업은 표준 라이브러리(`json`, `re`, `sys`)를 사용하여 인메모리 문자열 처리 방식으로 이루어집니다. 선언된 권한과 실제 코드가 완벽하게 일치합니다. 2. **악의적 목적의 코드 여부 (데이터 탈취, 시스템 파괴, 난독화 등):** * 스킬의 목적은 'SQL 인젝션 취약점 정적 스캐너'로, 취약점을 '탐지'하고 '안전한 대안을 제안'하는 '방어적' 도구임을 명시하고 있습니다. 공격 페이로드를 생성하지 않는다고 설명되어 있습니다. * 코드 내용 또한 사용자로부터 입력받은 코드/쿼리 문자열에 대해 정규 표현식 기반의 패턴 매칭을 수행하여 취약점을 식별하고, 미리 정의된 안전한 코드 패턴을 제안하는 로직으로 구성되어 있습니다. 데이터 탈취, 시스템 파괴, 또는 기타 악의적인 동작을 유발할 수 있는 코드는 발견되지 않았습니다. * 정적 분석 결과에서도 난독화 경고(`obfuscation_warnings`)가 없었으며, 코드 가독성도 매우 높습니다. 3. **선언되지 않은 외부 통신 여부:** * 위 1번 항목에서 언급했듯이, 네트워크 관련 모듈이나 함수 사용이 전혀 없어 선언되지 않은 외부 통신은 존재하지 않습니다. 4. **사용자 데이터를 무단으로 수집하거나 전송하는가?** * 스킬은 `stdin`으로 입력을 받아 `stdout`으로 결과를 출력하는 `stdin_stdout` 패턴을 따릅니다. 입력된 사용자 코드나 쿼리 문자열은 스킬 내부에서 분석된 후 결과와 함께 `stdout`으로 반환될 뿐, 어떠한 형태로도 외부로 전송되거나 저장되지 않습니다. 무단 데이터 수집/전송 행위는 발견되지 않았습니다. 5. **코드 품질이 스킬의 목적과 일치하는가?** * 코드는 `main.py`와 `lib` 패키지로 잘 분리되어 모듈화되어 있습니다. 각 모듈은 명확한 역할을 가지며, 주석과 타입 힌트가 잘 작성되어 있어 가독성이 높습니다. * 정규 표현식(`re` 모듈)을 활용한 패턴 매칭은 정적 코드 분석이라는 스킬의 목적에 부합하는 적절한 구현 방식입니다. * `dataclasses`를 활용하여 취약점 발견 결과를 구조화하는 등 코드 품질이 우수하며, 스킬의 설명과 예시에서 제시된 기능들을 안전하고 효율적으로 수행할 수 있도록 설계되었습니다. **결론:** 'sql-injection-scanner' 스킬은 선언된 보안 정책을 완벽하게 준수하며, 악의적인 의도나 위험한 동작 없이 사용자에게 유용한 보안 분석 기능을 제공합니다. 따라서 안전하다고 판단되어 승인합니다.

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-04-26 ⬇ 2 1.0.0: Initial Tier A release — 4 actions, 6 languages, 15+ audit rules, zero external dependencies

사용 예시 (Examples) 7 개

이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.

Python f-string SQL 취약점 탐지
# python# f-string# critical

Python f-string으로 SQL을 조립하는 취약점을 탐지합니다 / Detects f-string SQL injection in Python

📥 입력
{
  "action": "scan_code",
  "code": "import sqlite3\n\ndef get_user(username):\n    conn = sqlite3.connect(\u0027app.db\u0027)\n    cursor = conn.cursor()\n    query = f\"SELECT * FROM users WHERE name = \u0027{username}\u0027\"\n    cursor.execute(query)\n    return cursor.fetchall()\n",
  "language": "python"
}
📤 출력
{
  "action": "scan_code",
  "findings": [
    {
      "line": 5,
      "message_ko": "f-string\uc73c\ub85c SQL\uc744 \uc870\ub9bd\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud30c\ub77c\ubbf8\ud130\ud654 \ucffc\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc138\uc694.",
      "rule_id": "PY-INJ-002",
      "severity": "critical"
    }
  ],
  "language_detected": "python",
  "severity_counts": {
    "critical": 1,
    "high": 0,
    "low": 0,
    "medium": 0
  },
  "summary_en": "2 finding(s) \u2014 critical: 1, high: 0, medium: 0, low: 0",
  "summary_ko": "\ucd1d 2\uac1c \ucde8\uc57d\uc810 \ubc1c\uacac (\uc2ec\uac01: 1, \ub192\uc74c: 0, \uc911\uac04: 0, \ub0ae\uc74c: 0)",
  "total_findings": 2
}
Node.js Template Literal SQL 탐지
# nodejs# template-literal# critical

Node.js에서 template literal로 SQL을 조립하는 취약점 탐지 / Detects template literal SQL injection in Node.js

📥 입력
{
  "action": "scan_code",
  "code": "const mysql = require(\u0027mysql2/promise\u0027);\n\nasync function findUser(userId) {\n  const sql = `SELECT * FROM users WHERE id = ${userId}`;\n  const [rows] = await pool.query(sql);\n  return rows;\n}\n",
  "language": "nodejs"
}
📤 출력
{
  "action": "scan_code",
  "language_detected": "nodejs",
  "severity_counts": {
    "critical": 1,
    "high": 0,
    "low": 0,
    "medium": 0
  },
  "summary_ko": "\ucd1d 1\uac1c \ucde8\uc57d\uc810 \ubc1c\uacac (\uc2ec\uac01: 1, \ub192\uc74c: 0, \uc911\uac04: 0, \ub0ae\uc74c: 0)",
  "total_findings": 1
}
SQL 쿼리 문자열 위험 신호 분석
# query# template-literal# sql-comment

단일 SQL 쿼리 문자열의 위험 패턴을 분석합니다 / Analyzes a SQL query string for injection risk signals

📥 입력
{
  "action": "scan_query",
  "query": "SELECT * FROM users WHERE id = ${userId} -- admin bypass"
}
📤 출력
{
  "action": "scan_query",
  "risk_level": "critical",
  "risk_score": 90,
  "summary_en": "Risk level: critical (score: 90/100). 3 signal(s) detected.",
  "summary_ko": "\uc704\ud5d8\ub3c4: \uc2ec\uac01 (\uc810\uc218: 90/100). \ud0d0\uc9c0\ub41c \uc2e0\ud638 3\uac1c."
}
Python 안전 코드 제안
# python# suggest-fix# parameterized

Python 취약 코드에 대한 안전한 파라미터화 패턴 제안 / Suggests safe parameterized patterns for Python vulnerable code

📥 입력
{
  "action": "suggest_fix",
  "language": "python",
  "vulnerable_code": "cursor.execute(\"SELECT * FROM orders WHERE user_id=\" + str(user_id))\n"
}
📤 출력
{
  "action": "suggest_fix",
  "fix_summary_ko": "python \uc548\uc804 \ud328\ud134: Python DB-API 2.0 \ud30c\ub77c\ubbf8\ud130\ud654 \ucffc\ub9ac",
  "general_principles_ko": [
    "\uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \uc808\ub300 SQL \ubb38\uc790\uc5f4\uc5d0 \uc9c1\uc811 \uc0bd\uc785\ud558\uc9c0 \ub9c8\uc138\uc694.",
    "\ud56d\uc0c1 \ud30c\ub77c\ubbf8\ud130\ud654 \ucffc\ub9ac(Prepared Statement)\ub97c \uc0ac\uc6a9\ud558\uc138\uc694."
  ],
  "language": "python",
  "placeholder_style": "%s (psycopg2/MySQL) \ub610\ub294 ? (sqlite3)"
}
Java PreparedStatement 제안
# java# prepared-statement# suggest-fix

Java 취약 코드에 대한 PreparedStatement 패턴 제안 / Suggests PreparedStatement pattern for Java vulnerable code

📥 입력
{
  "action": "suggest_fix",
  "language": "java",
  "vulnerable_code": "String sql = \"SELECT * FROM users WHERE id=\" + userId;\nStatement stmt = conn.createStatement();\nResultSet rs = stmt.executeQuery(sql);\n"
}
📤 출력
{
  "action": "suggest_fix",
  "fix_summary_ko": "java \uc548\uc804 \ud328\ud134: Java PreparedStatement \ud30c\ub77c\ubbf8\ud130\ud654 \ucffc\ub9ac (JDBC \ud45c\uc900)",
  "language": "java",
  "placeholder_style": "? (\uc704\uce58 \uae30\ubc18 \ud50c\ub808\uc774\uc2a4\ud640\ub354)"
}
다중 파일 프로젝트 감사 (Python)
# audit# python# multi-file

Python 프로젝트 다중 파일의 SQL 위생 전체 감사 / Full SQL hygiene audit of multiple Python project files

📥 입력
{
  "action": "audit",
  "files": [
    {
      "code": "def find_user(email):\n    cursor.execute(\"SELECT * FROM users WHERE email=\u0027\" + email + \"\u0027\")\n    return cursor.fetchone()\n",
      "filename": "models/user.py"
    },
    {
      "code": "def search_products(name):\n    stmt = db.prepare(\"SELECT id, name FROM products WHERE name = %s\")\n    stmt.execute((name,))\n    return stmt.fetchall()\n",
      "filename": "models/product.py"
    }
  ],
  "language": "python"
}
📤 출력
{
  "action": "audit",
  "files_audited": 2,
  "risk_level": "critical",
  "rules_checked": 15,
  "summary_ko": "\ud30c\uc77c 2\uac1c \uac10\uc0ac \uc644\ub8cc. \uc704\ud5d8\ub3c4: \uc2ec\uac01."
}
PHP mysqli 취약점 탐지 + 감사
# php# mysqli# critical# login

PHP mysqli 취약 패턴 탐지 및 전체 감사 / Detects PHP mysqli vulnerabilities and runs full audit

📥 입력
{
  "action": "audit",
  "files": [
    {
      "code": "\u003c?php\n$user = $_POST[\u0027username\u0027];\n$pass = $_POST[\u0027password\u0027];\n$sql = \"SELECT * FROM users WHERE username=\u0027$user\u0027 AND password=\u0027$pass\u0027\";\n$result = mysqli_query($conn, $sql);\n?\u003e\n",
      "filename": "login.php"
    }
  ],
  "language": "php"
}
📤 출력
{
  "action": "audit",
  "files_audited": 1,
  "risk_level": "critical",
  "summary_ko": "\ud30c\uc77c 1\uac1c \uac10\uc0ac \uc644\ub8cc. \uc704\ud5d8\ub3c4: \uc2ec\uac01."
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/2ba64873-c945-45e3-a45d-2100464ca308/schema

리뷰 & 평점

아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!

✍️ 리뷰 작성