Tôi đã cài đặt phiên bản mới nhất của đá quý Brakeman để giúp tôi với bảo mật ứng dụng Rails.Ruby on Rails 3.2.13 - Brakeman - Bí mật phiên không được bao gồm trong điều khiển phiên bản
Tôi có một số ứng dụng Rails mà tôi có trên hai máy chủ, một cho phát triển và một cho sản xuất. Khi tôi chạy báo cáo Brakeman trên các ứng dụng của tôi, hầu hết trong số họ đã gắn cờ config/initializers/secret_token.rb với lỗ hổng bảo mật cao sau đây.
Session secret should not be included in version control near line 7
Đây là lần đầu tiên tôi thấy lỗi này kể từ khi tôi chạy phiên bản cũ hơn của Brakeman vài tháng trước.
Từ những gì tôi đã nghiên cứu cho đến nay Rails tự động tạo mã bí mật khi đường ray tên ứng dụng mới được thực thi. Tôi đã không nhận thức được nó cho đến bây giờ. Rõ ràng Rails không bảo vệ tập tin này, nếu tôi quyết định chuyển bất kỳ ứng dụng nào của tôi sang Github thì thông tin sẽ có sẵn cho bất cứ ai tại Github truy cập vào ứng dụng. Tại thời điểm này tôi không tải lên GitHub nhưng tôi muốn thông tin về cách di chuyển secure_token từ config/initializers/secret_token.rb để đóng lỗ hổng bảo mật trong các ứng dụng của tôi.
Một bài đăng trên blog tôi đã đọc đề xuất rằng tôi sẽ chèn mã thông báo bí mật vào biến ENV. Sẽ di chuyển câu lệnh từ config/initializers/secret_token.rb sang config/environment.rb để giải quyết vấn đề? Nếu vậy tôi sẽ thêm nhiệm vụ này vào danh sách nhiệm vụ của tôi trong quá trình phát triển Rails.
Mọi trợ giúp sẽ được đánh giá cao.
Đề xuất mà tôi đã đề cập về biến ENV đến từ bài đăng blog Code Climate. Tôi đọc nó trước khi đăng câu hỏi của tôi. Tôi không chắc chắn làm thế nào để biến nó thành biến ENV khi tôi đăng câu hỏi của mình. Tuy nhiên khi tôi nhìn vào môi trường. Tôi đã thấy các định dạng tuyên bố giống nhau. Vì vậy, tôi đã chuyển tuyên bố từ secret_token ở đó. Tin nhắn biến mất. Tôi có bài đăng trên blog Code Climate trong Dấu trang của mình. Tôi sẽ kiểm tra Figaro mà tôi đã thấy trong các tìm kiếm trước đó. Tôi cũng sẽ xem xét dotenv nữa. –
Nếu environment.rb được lưu trữ trong điều khiển nguồn của bạn, thì nó không an toàn hơn secret_token.rb. – Justin