Tôi nhận được báo cáo veracode cho ứng dụng javaEE của mình. Nó có một lỗ hổng ở bất kỳ đăng nhập nào (sử dụng log4j), vì vậy tôi thêm StringEscapeUtils.escapeJava(log)
vào tất cả chúng, nhưng veracode giữ báo cáo chúng là lỗi bảo mật.lỗ hổng bảo mật - báo cáo veracode - crlf injection
Đây có phải là giải pháp phù hợp không? Tôi có thể làm gì khác?
Đây là thông tin báo cáo: Title: không đúng Output trung hòa cho Logs
Mô tả: Một cuộc gọi chức năng có thể dẫn đến một cuộc tấn công giả mạo đăng nhập. Việc ghi dữ liệu do người dùng cung cấp không an toàn vào tệp nhật ký cho phép kẻ tấn công giả mạo các mục nhập nhật ký hoặc đưa nội dung độc hại vào tệp nhật ký. Các tệp nhật ký bị hỏng có thể được sử dụng để bao gồm các bài hát của kẻ tấn công hoặc làm cơ chế phân phối cho một cuộc tấn công vào tiện ích xử lý hoặc xem nhật ký. Ví dụ: nếu một quản trị viên web sử dụng tiện ích dựa trên trình duyệt để xem lại nhật ký, có thể xảy ra tấn công tập lệnh chéo trang web.
Đề xuất: Tránh trực tiếp nhúng người dùng nhập vào tệp nhật ký khi có thể. Vệ sinh dữ liệu do người dùng cung cấp được sử dụng để tạo nhật ký mục nhập bằng cách sử dụng cơ chế ghi nhật ký an toàn như OWASP ESAPI Logger, sẽ tự động xóa lợi nhuận và dòng thức ăn không mong muốn và có thể được định cấu hình để sử dụng mã hóa thực thể HTML cho dữ liệu không phải là chữ số . Chỉ viết mã danh sách đen tùy chỉnh khi thật cần thiết. Luôn xác thực đầu vào do người dùng cung cấp để đảm bảo rằng nó phù hợp với định dạng mong muốn, bằng cách sử dụng thói quen xác thực dữ liệu tập trung khi có thể.
Họ khuyên bạn nên sử dụng ESAPI, nhưng nó là một dự án rất lớn vì vậy tôi cần những giải pháp đơn giản nhất, THT là lý do tại sao tôi đã cố gắng với String.escape 'StringEscapeUtils.escapeJava (log)'
Thx ở cao cấp!
Bạn có thể cung cấp thêm thông tin từ báo cáo Veracode không? Tất nhiên là dải nó của bất kỳ thông tin nhận dạng nào –