Tôi vừa bắt đầu sử dụng đá quý brakeman để khám phá ứng dụng đường ray của tôi cho các lỗ hổng bảo mật.Làm thế nào để bảo mật link_to @variable crosssite scripting vulnerabilities
Tôi đã quản lý mọi thứ gọn gàng, ngoại trừ một số cảnh báo tập lệnh chéo trang web.
Những bài chia sẻ sau điểm chung:
- Họ đang tất cả các thẻ link_to
- Tất cả họ đều có các biến Ví dụ trong lớp, alt hoặc tiêu đề thuộc tính
- Các biến dụ tất cả các đại diện cho một truy vấn bản ghi hoạt động bao gồm các mô hình được liên kết
- Các biến mẫu là tất cả "có thể nhận xét". Điều này mô tả một liên kết đa hình cho các nhận xét do người dùng tạo, tương tự trong cách tiếp cận với phiên bản sửa đổi của this Railscast.
ví dụ
<%= link_to "Click" , :class=> @model.association.attribute, :alt=> @model.association.attribute, :title=> @model.association.attribute, @model.association %>
nơi
@model = @commentable = Model.includes(:association1, association2: {:nested-association1, :nested-association2}).find(params[:id])
là cái gì tôi cần phải được quan tâm/có hành động gì? Tôi nghĩ Rails 3.2 đã thoát khỏi những điều này theo mặc định.
Tôi muốn được tư vấn để giúp tôi hiểu vấn đề này tốt hơn và xác định các bước tôi nên thực hiện, nếu có.
cảm ơn câu trả lời của bạn Justin. Sau khi nhìn lại lỗi, tôi cũng nhận thấy rằng tất cả chúng đều là các câu lệnh 'include' phức tạp (nghĩa là một số mô hình, một số mô hình được lồng nhau). Ngoài ra (và có lẽ đây là nguyên nhân) tất cả chúng đều "có thể nhận xét". Tôi sẽ cập nhật câu hỏi của mình chi tiết hơn. –
có lẽ tái cấu trúc '@model = @commentable = ARquery' của tôi thành hai dòng có thể giải quyết vấn đề này? Nhưng tôi vẫn không chắc tôi hiểu tại sao đây là một vấn đề. Won't Rails sẽ thoát khỏi điều này theo mặc định?Đánh giá cao bất kỳ lời khuyên nào để giúp tôi cải thiện sự hiểu biết của mình. –
Đã cập nhật câu trả lời theo thông tin mới này. Dường như việc chia tách trên hai dòng sẽ giải quyết được vấn đề, đó là một lỗi trong Brakeman. – Justin