-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sonar #18
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
BOAS PRATICAS
REQUISITADAS PELO O SONAR
Acusações encontradas.
Use a variable binding mechanism to construct this query instead of concatenation.
Venerabilidade de nível blocker, isso ocorre devido ao criar string de query (Exemplo: "SELECT * FROM produtos WHERE categoria =" + userInput), para corrigir nao deve se concatenar variáveis junto a string, deve se usar o
Return a copy of...
Objetos mutáveis são aqueles cujo estado pode ser alterado. Por exemplo, uma matriz é mutável, mas uma String não é. Os membros mutáveis da classe nunca devem ser devolvidos a um chamador ou aceitos e armazenados diretamente. Isso o deixa vulnerável a mudanças inesperadas em seu estado de classe. Em vez disso usar um unmodifiable Collection(via Collections.unmodifiableCollection, Collections.unmodifiableList...) ou fazer uma cópia do objeto mutável, e armazenar ou retornar a cópia. Esta regra verifica se matrizes, coleções e datas não são armazenadas ou retornadas diretamente. Exemplo:
The regular expression is vulnerable to a denial of service attack (ReDOS)
Expressões regulares (regexs) estão frequentemente sujeitas a ataques de negação de serviço (DOS) (chamados ReDOS). Isso se deve ao fato de que os mecanismos de regex podem demorar muito tempo ao analisar determinadas cadeias de caracteres, dependendo de como o regex está definido.
Por exemplo, para o regex: ^ (a +) + $ , a entrada " aaaaaaaaaaaaaaaaX" fará com que o mecanismo de regex analise 65536 caminhos diferentes. Uma maneira de evitar esse problema é tirando a regex do codigo exposto e colocando em um PropertiesConstanties
The use of java.util.Random is predictable
Uma solução rápida seria substituir o uso de java.util.Random por algo mais forte, como java.security.SecureRandom .
This use of javax/persistence/EntityManager.createQuery(Ljava/lang/String;)Ljavax/persistence/Query; can be vulnerable to SQL/JPQL injection
Utilizar meios de concatenação de strings... como o StringBuilder .append().
The text was updated successfully, but these errors were encountered: