Nasz zespół stara się lepiej przestrzegać wytycznych OWASP, a jednym z zadań jest zapobieganie atakom SQL Injection. Aby to ułatwić, szukałem sposobu automatycznego sprawdzenia, czy w naszej bazie kodowej użyto kodu java.sql.Statement
, aby można było go oznaczyć i zmienić, aby korzystał z PreparedStatement
.Szukasz sposobu, aby uniemożliwić korzystanie z java.sql.Statement w projekcie
Nasz proces budowy oparty jest na Mavenie, a my mamy również konfigurację Sonaru do przeprowadzania analiz dotyczących projektu. W Sonarze obowiązują już pewne zasady, aby nie dopuścić do naszych kompilacji, jeśli zostaną spełnione określone progi, więc można to wprowadzić w życie. Widziałem, gdzie mogę ustawić regułę regex dla checkstyle, szukającą importu, ale chciałem sprawdzić, czy były też inne opcje.
Dowolna lokalizacja wzdłuż ścieżki rozwoju/kompilacji działałaby. Gdyby coś w intelli, które oznaczałoby to, coś w procesie budowania maven, lub inny sposób oznaczania tego w sonarze, każdy z nich byłby w porządku.
Dzięki!
Należy zauważyć, że te same ataki mogą być również wykonywane za pomocą przygotowanych instrukcji: 'connection.prepareStatement (" wybierz t1. * Z t1 gdzie t1.code = '"+ kod +" ""); '. Najlepszą rzeczą jest edukacja programistów. –
Będziemy przechodzić audyt OWASP i będą szukać bardziej konkretnych pozycji. Zgadzam się z twoim oświadczeniem na ten temat, ale chcemy też mieć pewien rodzaj zautomatyzowanej warstwy sprawdzającej. – jaycyn94