2017-10-04 4 views
0

J'utilise le plugin « Trouver Bugs de sécurité » pour Findbugs: https://find-sec-bugs.github.io/Comment enlever « souiller » pour Findbugs « Trouver Bugs de sécurité »

La plupart des détecteurs utilisent « l'analyse Taint » pour élever leurs avertissements.

Y at-il des documents sur la façon de supprimer « souiller » d'une valeur?

Je ne trouve pas de documents à ce sujet sur leur site, et moi avons farfouillé leur code source et ne peut pas le comprendre:

L'outil identifie un bug d'injection possible à partir du code comme:

import javax.ws.rs.core.Response; 
import org.apache.http.client.methods.HttpGet; 

public Response get(String x, String y) throws IOException { 

    String url = String.format("%s/%s", 
      x, 
      y); 

    HttpGet request = new HttpGet(url); // HERE 

    ... 
} 

J'ai résolu ce bug à ma satisfaction:

import javax.ws.rs.core.Response; 
import org.apache.http.client.methods.HttpGet; 
import static com.google.common.net.UrlEscapers.urlPathSegmentEscaper; 

public Response get(String x, String y) throws IOException { 

    String url = String.format("%s/%s", 
      urlPathSegmentEscaper().escape(x), 
      urlPathSegmentEscaper().escape(y)); 

    HttpGet request = new HttpGet(url); 

    ... 
} 

... mais l'outil est encore un bug repérage possible. Je crois que c'est parce qu'il ne reconnaît pas "com.google.common.net.UrlEscapers.urlPathSegmentEscaper()" en supprimant Taint ici.

Comment puis-je persuader autrement? Si je ne peux pas, quelles techniques d'assainissement puis-je utiliser ici que l'outil reconnaît?

Répondre