2013-03-20 23 views
8

Tôi đang duy trì một ứng dụng Django 1.5 sản xuất.Đảm bảo tải JSON, XML và YAML an toàn trong dự án Django

Gần đây, có rất nhiều tiếng ồn về các lỗ hổng khác nhau liên quan đến tải các đối tượng JSON, XML và YAML. Nếu tôi hiểu chính xác, đầu vào đã được chế tạo cẩn thận để khai thác các lỗi trong các chức năng tải.

Bây giờ, tôi không biết Django (hoặc hàng tá ứng dụng của bên thứ ba mà chúng tôi sử dụng) sử dụng từng giao thức này. Làm thế nào tôi có thể được an toàn từ các lỗ hổng như vậy? Tôi có cần đảm bảo rằng Django đang tải JSON, XML và YAML một cách an toàn không?

+3

Đảm bảo rằng Django đang tải JSON, XML và YAML một cách an toàn là công việc của nhà phát triển Django. Tôi có thể đảm bảo với bạn, có thể có nhiều vấn đề bảo mật hơn trong mã của bạn hơn là trong Django (mặc dù những thứ đó rõ ràng có tác động nhiều hơn và có nhiều khả năng được tìm thấy hơn). – delnan

+0

Bạn đề cập đến tiếng ồn gì? Bất kỳ liên kết nào về chi tiết cụ thể? –

+5

Tôi tin rằng anh ấy đang nói về [Khai thác YAML của Rails] (http://rubysource.com/anatomy-of-an-exploit-an-in-depth-look-at-the-rails-yaml-vulnerability/) và [Thư viện XML của Python phân tích các vectơ tấn công DOS] (http://blog.python.org/2013/02/announcing-defusedxml-fixes-for-xml.html). –

Trả lời

1

Django không chấp nhận đầu vào được mã hóa của người dùng theo các định dạng này theo mặc định và các ứng dụng của bên thứ ba sẽ không thực hiện được, nhưng sẽ kiểm tra các phần được người dùng đảm bảo. Những người lớn sẽ là nhà cung cấp API (Tastypie, Django REST Framework, v.v.). Nếu bạn đang sử dụng phiên bản hiện tại, bạn nên an toàn, nhưng nó đáng để kiểm tra/xác nhận.

Nếu bạn đang tải bất kỳ thứ gì trong ứng dụng của mình từ các định dạng này, hãy đảm bảo sử dụng phương thức defusedxml và YAMLs safe_load. Thư viện chuẩn json mô-đun phải an toàn với các loại khai thác này.

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