T09 · Insecure Skill Coding Practices
- Location
src/main.py:117- Finding
SQL Injection Through Unvalidated Database, Table, and Year Inputs
- Content
View full analysis
str: if explicit_year: return explicit_year if request_text: match = re.search(r"(? str: return f""" SELECT typecode, SUM(COALESCE(tuanyi, 0)) AS tuanyi, SUM(COALESCE(zinv, 0)) AS zinv, SUM(COALESCE(nvgongteji, 0) + COALESCE(nvgongteji25, 0)) AS nvgongteji, SUM(COALESCE(zhongji, 0) + COALESCE(zhongdajibing90, 0) + COALESCE(zhongdajibing40, 0)) AS zhongji, SUM(COALESCE(qingzheng, 0)) AS qingzheng, SUM(COALESCE(yiliao, 0)) AS yiliao, SUM(COALESCE(jintie, 0)) AS jintie, SUM(COALESCE(buchongyiliao, 0)) AS buchongyiliao, SUM(COALESCE(liangai, 0)) AS liangai, SUM(COALESCE(zonghea, 0)) AS zonghea, SUM(COALESCE(zongheb, 0)) AS zongheb, SUM( COALESCE(tuanyi, 0) + COALESCE(zinv, 0) + COALESCE(nvgongteji, 0) + COALESCE(nvgongteji25, 0) + COALESCE(zhongji, 0) + COALESCE(zhongdajibing90, 0) + COALESCE(zhongdajibing40, 0) + COALESCE(qingzheng, 0) + COALESCE(yiliao, 0) + COALESCE(jintie, 0) + COALESCE(buchongyiliao, 0) + COALESCE(liangai, 0) + COALESCE(zonghea, 0) + COALESCE(zongheb, 0) ) AS total FROM {table_name} WHERE date_year = {year} AND typecode IN (1, 2, 3, 4, 5, 6) GROUP BY typecode ORDER BY typecode """ def metadata_sql(database: str, table_name: str) -> str: return f""" SELECT TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{database}' AND TABLE_NAME = '{table_name}' ORDER BY ORDINAL_POSITION """ ...[truncated 2387 chars]- Remediation
View remediation
