Как убрать "taint" для Findbugs "Find Bugs Security"
Я использую плагин "Find Security Bugs" для Findbugs: https://find-sec-bugs.github.io/
Многие из детекторов используют "Анализ порчи", чтобы поднять свои предупреждения.
Есть ли документация о том, как удалить "порчу" из значения?
Я не могу найти никаких документов об этом на их сайте, и я искал их исходный код и не могу понять это:
- SRC / главная / Java / COM / h3xstream / findsecbugs / taintanalysis
- SRC / главная / ресурсы / порча-конфигурации
- Смотрите также эту вики-страницу "Обнаружение инъекций"
Инструмент идентифицирует возможную ошибку внедрения из кода, такого как:
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