Нам довелось использовать приложения IBM. awdtools/appscan/
против нашей кодовой базы Java, и он обнаружил около 3000 уязвимостей высокой степени серьезности.
Большинство из них связаны с утечкой системной информации, которая, по его мнению, происходит, когда мы печатаем трассировку стека в блоках catch, но мы печатаем только имя файла и номер строки, что позволяет нам лучше отлаживать код.
И некоторые из них касаются SQL-инъекций, проверки ввода и т. д.
Но мой вопрос был об исчерпании ресурсов (дескриптор файла, место на диске, сокеты и т. д.), и в нем перечислены все экземпляры java.io.BufferedReader.readLine
как места для возможных внешних атак.
InputStream ins=conn.getInputStream();
String inputLine;
if (!preserveLinefeeds) {
BufferedReader in = new BufferedReader(new InputStreamReader(ins));
while ((inputLine = in.readLine()) != null)
pr.readThreadResponse+=inputLine;
in.close();
ins.close();
}
conn — это объект HttpURLConnection.
Как добавить в код меры безопасности, чтобы предотвратить это?