2013-01-23 33 views
15

Trong môi trường sản xuất, tại sao tôi lại nghe mọi người nói rằng rời khỏi DEBUG = Đúng là nguy hiểm?DEBUG = True Django

Ví dụ về việc ai đó có thể khai thác vấn đề bảo mật này để thực hiện tác vụ độc hại trên máy chủ của tôi là gì?

+0

bạn nên chấp nhận an toàn. – shuboy2014

+0

Bạn nên chấp nhận câu trả lời của @ PraveenGollakota –

Trả lời

11

https://docs.djangoproject.com/en/dev/ref/settings/#debug

"Không bao giờ triển khai một trang web vào sản xuất với DEBUG bật.

Bạn có nắm bắt đó? KHÔNG BAO GIỜ triển khai một trang web vào sản xuất với DEBUG bật.

Một trong những tính năng chính Nếu ứng dụng của bạn đặt ra một ngoại lệ khi DEBUG là True, Django sẽ hiển thị một traceback chi tiết, bao gồm rất nhiều siêu dữ liệu về môi trường của bạn, chẳng hạn như tất cả các cài đặt Django hiện đang được xác định (từ cài đặt. py). "

Về cơ bản, đó là lỗ hổng bảo mật định hình.

Nó cũng lãng phí nhiều bộ nhớ:.

"Nó cũng quan trọng để nhớ rằng khi chạy với DEBUG bật, Django sẽ nhớ mọi truy vấn SQL nó thực thi này rất hữu ích khi bạn đang gỡ lỗi, nhưng nó sẽ nhanh chóng tiêu thụ bộ nhớ trên một máy chủ sản xuất. "

+0

Vì vậy, những gì chúng tôi cần phải chỉ định ** DEBUG ** trong sản xuất? – shuboy2014

+0

@ shuboy2014 'DEBUG = False' cho môi trường sản xuất –

+0

Điều này dường như không trả lời được câu hỏi. OP dường như biết không cho phép DEBUG trong sản xuất; anh ấy đã yêu cầu ** một ví dụ **, nơi ai đó có thể khai thác vấn đề bảo mật để thực hiện tác vụ độc hại trên máy chủ. Việc nhắc lại để "không bao giờ làm điều đó" giống như trong tập Family Guy, nơi Quagmire nói rằng anh sẽ không kết hôn với một cô gái gọi và Joe nói "Tốt. Đừng.", Và sau đó Quagmire giống như "Tôi đã biết không làm điều đó, bạn không cần phải nói với tôi không phải ", Joe trả lời:" Tốt, đừng ". –

6

Django cố gắng hết sức để làm xáo trộn thông tin bảo mật trong trang gỡ lỗi của bạn, nhưng nó không hoàn hảo.

Theo mặc định, mọi cài đặt bao gồm KEY (bắt đầu từ Django 1.4), SECRET vv sẽ tự động được thay thế bằng *. Tuy nhiên, nếu ai đó quyết định sáng tạo và gọi SECRET là SECURE_STR hoặc bất kỳ điều gì, điều đó sẽ được hiển thị dưới dạng văn bản thuần túy! Bạn có muốn điều đó không? Ngoài ra nó chỉ là thức ăn nhiều hơn cho một ai đó để hack vào máy chủ của bạn một cách dễ dàng.

+0

Ví dụ tuyệt vời về cách thông tin bí mật có thể bị rò rỉ. –

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