You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# .git/hooks/pre-commit#!/bin/sh
make scan-critical ||exit 1
.semgrep/config.yml
rules:
- id: critical-sql-injectionseverity: ERROR
- id: weak-cryptoseverity: WARNING
- id: code-smellseverity: INFO
- id: use-secure-randompattern: new Random()fix: new SecureRandom() # autofixmessage: "Замените Random на SecureRandom для криптографических операций"severity: ERRORlanguages: [java]# приоритезация
- id: sql-injectionseverity: ERRORmetapriority: CRITICALsla_days: 1
- id: weak-cryptoseverity: WARNINGmetapriority: HIGHsla_days: 7
- id: missing-javadocseverity: INFOmetapriority: LOWsla_days: 30
.semgrep/tests/test-sql-injection.yml
$ semgrep --test .semgrep/tests/ # прогонка
rules:
- id: sql-injectionpattern: ...tests:
- name: Должен детектировать SQL injectionvulnerable_code: | String query = "SELECT * FROM users WHERE id = " + userId;should_match: true
- name: Не должен срабатывать на PreparedStatementsafe_code: | PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE id = ?"); ps.setInt(1, userId);should_match: false
.semgrepignore
# Тестыtest/
tests/
*_test.java*Test.java# Сгенерированный кодtarget/
build/
generated/
*.g.java# Vendor dependenciesnode_modules/
vendor/
# Конкретные файлы с известными false positivessrc/main/java/legacy/OldCrypto.java:weak-md5-hashing