2015-07-29 110 views
5

Tôi muốn sử dụng Spel để đánh giá một số đầu vào của người dùng. Nhưng điều đó mở ra một lỗ hổng bảo mật bởi vì Spel enginge cũng thực thi mã và có thể bắt đầu các lớp và truy cập các đối tượng tĩnh. Ví dụ T (System) .exit (0) thoát khỏi hệ thống.Thực hiện mã Spring EL (SpEL)

Có thể ngăn chặn loại thực thi mã này không?

Trả lời

0

Cách để tránh điều này là không bao giờ đánh giá đầu vào của người dùng bằng ngôn ngữ biểu thức.

Bạn sẽ không bao giờ có thể liệt kê và do đó ngăn chặn việc thực hiện tất cả các mã "xấu" có thể xảy ra.

Thay vào đó, bạn có thể sử dụng đầu vào của người dùng làm biến môi trường (chuỗi, số) với biểu thức EL cố định.

Các vấn đề liên quan