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
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:
public List getDiasVencimento() {
List copy = new ArrayList<>();
copy = diasVencimento
return copy ;
}
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 .
String generateSecretToken () {
Random r = new Random ();
retornar Long.toHexString (r.nextLong ());
}
Solução:
String generateSecretToken () {
SecureRandom secRandom = new SecureRandom ();
byte [] resultado = novo byte [32];
secRandom.nextBytes (resultado);
retornar Hex.encodeHexString (resultado);
}(Substituir o Random com SecureRandom)
This use of javax/persistence/EntityManager.createQuery(Ljava/lang/String;)Ljavax/persistence/Query; can be vulnerable to SQL/JPQL injection
TypedQuery q = em.createQuery (
"selecione * em Usuários em que name = usernameParam", UserEntity.class)
.setParameter ("nome de usuárioParam", nome de usuário);
UserEntity res = q.getSingleResult ();
Utilizar meios de concatenação de strings... como o StringBuilder .append().
The text was updated successfully, but these errors were encountered:
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: