Repository navigation
Security vi
English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt
Trang này giải thích cách báo cáo một vấn đề bảo mật, và những điểm bảo mật cần biết khi ứng dụng của bạn truyền dữ liệu người dùng nhập vào docxi.
Vui lòng không báo cáo vấn đề bảo mật trong các issue công khai. Thay vào đó, hãy gửi email cho người bảo trì. Địa chỉ email nằm trong docxi.gemspec. Hãy ghi rõ phiên bản docxi và một cách ngắn gọn để tái hiện sự cố.
docxi 0.0.x truyền chuỗi đường dẫn hình ảnh cho Kernel#open. Kernel#open chạy một chuỗi bắt đầu bằng | như một lệnh shell, nên kẻ tấn công kiểm soát được đường dẫn hình ảnh có thể chạy lệnh trên máy chủ của bạn. 0.1.0 mở tệp bằng File.open và tải URL bằng URI#open. Cả hai đều không chạy lệnh.
Truyền văn bản là an toàn. Văn bản, nội dung bảng và các chuỗi khác được ghi dưới dạng văn bản XML hoặc giá trị thuộc tính, và nokogiri sẽ thoát ký tự cho chúng. Dữ liệu người dùng nhập không thể thêm phần tử vào tài liệu.
Nguồn hình ảnh cần được cẩn trọng. add_media chấp nhận:
| Nguồn | docxi làm gì |
|---|---|
| Một IO do bạn mở | Đọc IO đó |
| Một đường dẫn tệp | Đọc tệp đó từ ổ đĩa của máy chủ |
Một URL http, https hoặc ftp
|
Tải URL đó xuống từ máy chủ của bạn |
Nếu người dùng chọn được đường dẫn, họ có thể khiến bất kỳ tệp nào đọc được trên máy chủ của bạn, chẳng hạn tệp cấu hình hoặc khóa, bị nhúng vào tài liệu. Nếu người dùng chọn được URL, máy chủ của bạn sẽ gửi yêu cầu tới đó, và yêu cầu này có thể chạm tới các địa chỉ nội bộ (giả mạo yêu cầu phía máy chủ, SSRF). Hãy truyền một IO do chính bạn mở, hoặc chỉ cho phép những đường dẫn và máy chủ đã biết.
Siêu liên kết trỏ tới bất cứ nơi nào URL chỉ định. Hãy kiểm tra URL do người dùng cung cấp trước khi truyền vào add_hyperlink.
- Các phiên bản được phát hành từ GitHub Actions bằng cơ chế xuất bản tin cậy (trusted publishing) của RubyGems, nên kho mã không lưu khóa API nào.
- Siêu dữ liệu của gem đặt
rubygems_mfa_required, nên các lần đẩy gem bằng khóa API cá nhân đều cần xác thực đa yếu tố.
docxi wiki · README · Installation · Troubleshooting · Report an issue · MIT License
Start
Build documents
Help
Project
Links
Languages