Ismaeel Ali Ответов: 1

Код Java веб-приложение, возвращаясь с пути обхода проблемы. Как исправить эту/эти ошибки безопасности?


Поэтому при тестировании базового веб-приложения java, которое я создаю, при тестировании на наличие ошибок возникает проблема, которая возвращается. В строке 28(код-String file = request.getparameter) есть ошибка, называемая "относительный обход пути", а в строке 30(2 строки вниз от запроса) ошибка называется "обход пути в" (эти ошибки связаны с безопасностью, а не функциональностью).

Я немного смущен, почему это не безопасно, но я знаю, как это не безопасно. Злоумышленник может возиться с url-адресом, чтобы добраться до других файлов в каталоге, в который они не должны быть в состоянии попасть, и делать плохие вещи.

public class FileDownload extends HttpServlet {

    private String DOWNLOAD_PATH = new File(".").getCanonicalPath() + "/webapps/webapp/app/download";

    public FileDownload() throws IOException {
    }

    public void init() throws ServletException {
        //To Do
    }

    public void doGet(HttpServletRequest request,
                       HttpServletResponse response)
            throws ServletException, IOException
    {

        String file = request.getParameter("file");

        File downloadPath = DOWNLOAD_PATH + "/" + file;


        File downloadFile = new File(downloadPath, Filenameutils.getName(file));

        if (downloadFile.exists()) {
            response.setContentType("application/octet-stream");
            response.setHeader("Content-disposition", "attachment; filename="+ downloadFile.getName());
            FileInputStream fis = new FileInputStream(downloadFile);
            byte[] data = new byte[(int) downloadFile.length()];
            fis.read(data);
            fis.close();

            OutputStream out = response.getOutputStream();
            out.write(data);
            out.flush();
        }
        else
            response.sendError(404);

    }

Мне нужно сделать его безопасным, но я не уверен, как это сделать после поиска в интернете об уязвимостях. Есть ли у кого-нибудь опыт в подобных проблемах с файлами?

Что я уже пробовал:

Я пытался изменить Расширения имен файлов и т. д., но безрезультатно. Может ли кто-нибудь подсказать, в чем проблема и как удалить ошибки безопасности?

Заранее спасибо :D

1 Ответов

Рейтинг:
2