Как убрать "taint" для Findbugs "Find Bugs Security"

Я использую плагин "Find Security Bugs" для Findbugs: https://find-sec-bugs.github.io/

Многие из детекторов используют "Анализ порчи", чтобы поднять свои предупреждения.

Есть ли документация о том, как удалить "порчу" из значения?

Я не могу найти никаких документов об этом на их сайте, и я искал их исходный код и не могу понять это:

Инструмент идентифицирует возможную ошибку внедрения из кода, такого как:

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

    ...
}

Я исправил эту ошибку к своему удовлетворению:

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);

    ...
}

... но инструмент все еще отмечает возможную ошибку. Я считаю, что это потому, что он не признаетcom.google.common.net.UrlEscapers.urlPathSegmentEscaper()как убираю Taint здесь.

Как я могу убедить это иначе? Если я не могу, какие методы дезинфекции я могу использовать здесь, чтобы инструмент распознал?

1 ответ

Ответ был дан на трекере: https://github.com/find-sec-bugs/find-sec-bugs/issues/346

Другие вопросы по тегам