Tôi muốn cho phép người dùng để lại nhận xét văn bản đa dạng thức, có thể sử dụng đánh dấu. Tôi đã cài đặt các thư viện được sử dụng trên Reddit, nhưng lo ngại về tấn công javascript injection xảy ra vào năm ngoái, đặc biệt là vì tôi vẫn chưa rõ ràng về các chi tiết về cách tấn công được thực hiện. Tôi có nên vẫn lo ngại về bảo mật bình luận không? Có một chuỗi kiểm tra mà tôi có thể đặt qua hệ thống của mình để kiểm tra các lỗi tương tự đã làm giảm reddit không?Thư viện an toàn Markdown Python
Trả lời
Python-Markdown - loại 'chuẩn' nhiều hơn hoặc ít hơn - có tính năng 'chế độ an toàn' thoát thẻ html. Điều đó là đủ để chống lại hầu hết tất cả các cuộc tấn công HTML injection.
reddit sử dụng discount markdown library ngay bây giờ.
Các câu trả lời khác đề cập đến chế độ an toàn của Python-Markdown nhưng hiện không được chấp nhận. Các tác giả của Python-Markdown đã được trích dẫn nói:
"an toàn chế độ" là một tên lựa chọn người nghèo mà chúng ta tiếp tục sử dụng cho lùi so sánh (mã cũ vẫn hoạt động với các phiên bản mới hơn của chúng tôi). Điều thực sự là là chế độ không đánh dấu. Nói cách khác, nó chỉ là một cách để không cho phép html thô và thực sự không đảm bảo an toàn.
Hiện tại, họ khuyên bạn nên sử dụng trình vệ sinh HTML như Bleach để vệ sinh đầu ra Đánh dấu. mdx_bleach là một tiện ích mở rộng Python-Markdown thực hiện điều đó. Disclaimer: Tôi là tác giả của phần mở rộng này.
Vì nó sử dụng html5lib để phân tích các đoạn tài liệu giống như cách trình duyệt thực hiện, Bleach cực kỳ linh hoạt với các cuộc tấn công không xác định, nhiều hơn so với các công cụ vệ sinh thông thường.
- 1. Django/Python: Chuyển đổi Markdown thành HTML an toàn
- 2. Thư viện Trove có an toàn không?
- 3. Pure Ruby (not C) Thư viện Markdown
- 4. Thư viện tam giác an toàn chủ đề
- 5. Khung xác thực người dùng an toàn, thư viện
- 6. Đối tượng Session từ chuỗi thư viện Yêu cầu của Python có an toàn không?
- 7. Dấu hiệu python-markdown có an toàn trên đầu vào không tin cậy không?
- 8. Thư viện JavaScript cho Markdown, Textile và các thư viện khác; Anchor references
- 9. dereferencing an toàn bằng Python
- 10. Nhập an toàn bằng Python
- 11. Thư viện ActionScript để chuyển đổi Markdown thành HTML
- 12. An toàn loại an toàn()
- 13. Thư viện Python BitTorrent
- 14. Mã python an toàn nhất chạy
- 15. Python 2.7: In chủ đề an toàn
- 16. Loại in an toàn
- 17. Không an toàn để ném ngoại lệ từ các thư viện C++ được liên kết tĩnh?
- 18. thư viện ổi - Chủ đề lớp Đặt hàng có an toàn không?
- 19. Ứng dụng Ghi nhật ký Thư viện Doanh nghiệp Microsoft 5.0 có an toàn không?
- 20. Thư viện Python của Twitter: thư viện nào?
- 21. Mã an toàn và không an toàn
- 22. Mảng an toàn không có khóa an toàn
- 23. Đường dẫn thư viện Python
- 24. Python Subversion wrapper thư viện
- 25. an toàn thread unordered_map
- 26. Nâng và loại an toàn
- 27. Vùng mã không an toàn trong TypeScript
- 28. Cách thêm thư mục trong An toàn nguồn?
- 29. Di chuyển an toàn thư mục Microsoft SDK
- 30. Thuộc tính html/css nào là thư an toàn?
Tôi đang làm việc trong môi trường trăn thuần túy (công cụ ứng dụng của Google) nên tôi không nghĩ mình có thể sử dụng thư viện C. Tôi đang xem thư viện Scavenger đã đề cập ở trên và cũng xem mã filters.py và markdown.py từ reddit. Thư viện freewisdom là * dự định * sẽ được đưa vào một dự án khác, trong khi rõ ràng bạn dự định mã reddit để làm việc trong reddit, do đó, nghiêng tôi về phía mã freewisdom. Mặt khác, tôi tò mò về lý do tại sao bạn cần phải viết mã bộ lọc của riêng mình ngay từ đầu - có lỗ hổng nào trong các thư viện công khai mà tôi cần biết không? – MichaelBlume