2011-10-14 40 views
6

Tôi là người mới đến với thế giới của coffeescript (javascript). Hiện đang xây dựng ứng dụng backbone.js đầu tiên của tôi, giao tiếp với phần phụ trợ của Rails qua SSL.Bảo mật trong backbone.js?

Trong những năm qua, tôi đã được thông báo nhiều lần rằng bảo mật JavaScript "", do đó hãy thực hiện tất cả phía máy chủ logic nếu có thể. " Tôi đã có một xử lý về bảo mật phía máy chủ, nhưng những gì về khách hàng?

Có thể một số mô hình xương sống của tôi sẽ chứa thông tin mà người dùng muốn bảo vệ.

Cập nhật 1: Để trả lời @Nupul, tôi muốn bảo vệ bộ dữ liệu (integer, string, datetime). Không có gì có thể thỏa hiệp bất kỳ hệ thống từ xa nào.

Cập nhật 2: Vì vậy, điều duy nhất cần lưu ý là cung cấp cùng dữ liệu cho xương sống mà người dùng sẽ xem xét an toàn để cung cấp trong chế độ xem html không có js?

+0

Tôi không chắc chắn những gì bạn muốn bảo vệ ở nơi đầu tiên ... dữ liệu trong các mô hình chỉ là dữ liệu biến/nội dung được thao tác trên phía khách hàng ... những gì bạn truyền có lẽ sẽ qua SSL vì vậy tôi Bạn không chắc chắn những gì bạn thực sự muốn bảo vệ? Hãy thử mã hóa tất cả mọi thứ trong các mô hình nếu đó là một mối quan tâm nhưng bạn sẽ nhanh chóng nhận ra nó là một quá mức, hiệu suất thấp và có thể không đáng giá :) – PhD

+0

@Alex: re: ** Update 2 **: Vâng, đó là đúng. –

+0

@JeremyBanks Cảm ơn! –

Trả lời

11

Bảo mật JavaScript, theo nghĩa của bạn, không chỉ là hút, nó thực sự là không thể. Bạn không thể mã tin cậy mà bạn chạy trên máy khách. Bạn sẽ cần phải cấu trúc chương trình của bạn theo cách mà máy chủ của bạn không bao giờ gửi thông tin đến máy tính của khách hàng trừ khi bạn muốn họ có thể nhìn thấy nó.

+5

Để người dùng độc hại xem dữ liệu trong mô hình của người dùng trên SSL, anh/cô ấy phải đang ngồi "trên" máy của người dùng đang nhìn chằm chằm vào trang, hãy đọc kỹ javascript và gỡ lỗi để xem nội dung và biết backbone.js – PhD

+0

@ Alex: Trên một lưu ý nghiêm túc, nó là gì mà bạn muốn bảo vệ? – PhD

+0

Có, @jeremybanks là hoàn toàn đúng ở đây, "Bạn không thể tin tưởng mã bạn chạy trên máy khách" luôn luôn nên thực hiện kiểm tra bảo mật ở phía máy chủ mà không hề nghĩ rằng bạn có kiểm tra bảo mật ở phía máy khách hoàn toàn bỏ qua các kiểm tra đó. –