2010-02-25 24 views
5

Chúng tôi đang xây dựng trang web nội dung do người dùng tạo, nơi chúng tôi muốn cho phép người dùng có thể nhúng các nội dung như video, trình chiếu, v.v. Bất kỳ ai cũng có thể đề xuất danh sách thẻ được chấp nhận chung/thuộc tính để cho phép trong đường ray vệ sinh mà sẽ cung cấp cho chúng tôi bảo mật khá tốt, trong khi vẫn cho phép một số lượng tốt của định dạng nội dung/html có thể nhúng?Rails Sanitize: An toàn + Cho phép nhúng

Trả lời

0

Miễn là bị tắt, bạn sẽ có thể cho phép các đối tượng. Bạn thậm chí có thể xác định các thông số chấp nhận được của các thẻ đối tượng thực tế, do đó bạn chỉ cho phép một danh sách trắng và không thể bao gồm các đối tượng abitrary.

Tuy nhiên, có thể tốt hơn là cung cấp hỗ trợ giao diện người dùng để nhúng. Ví dụ: tôi nhắc người dùng nhập URL YouTube và sau đó lấy mã nhúng cho video từ đó.

Một số lợi ích: - mã YouTube mặc định là không tiêu chuẩn phù hợp để tôi có thể xây dựng riêng Object đang tôi - người sử dụng tôi đã hoàn toàn kiểm soát cách các yếu tố nhúng có trong trang đầu ra

0

Thành thực mà nói rằng cho phép để sử dụng trình soạn thảo HTML của WYSIWYG có thể nghe hay, nhưng trong thực tế, nó không hoạt động tốt cho cả người dùng và nhà phát triển. Lý do là:

  • Vẫn còn quá khác biệt trong các trình duyệt khác nhau.
  • Danh sách trắng cho phép bảo mật trang web, nhưng người dùng sẽ kết thúc cuộc gọi và yêu cầu cho phép tham số khác cho thẻ OBJECT hoặc tương tự. Danh sách đen không an toàn.
  • Không nhiều người dùng biết thẻ HTML là gì.
  • Đối với người dùng khó định dạng văn bản (cách bạn có thể yêu cầu họ sử dụng HEADER thay vì BOLD + FONT-SIZE).
  • Nói chung nó khá đau và bạn không thể thay đổi thiết kế trang nếu cần vì người dùng không sử dụng đúng HTML.

Nếu tôi đang sử dụng hệ thống giống như CMS ngay bây giờ, tôi có thể đi với đánh dấu ngữ nghĩa đánh dấu.
Hầu hết người dùng, làm quen với nó một cách nhanh chóng và nó chỉ là văn bản thuần túy (như ở đây tại SO).

Ngoài ra, bạn có thể tạo HTML thích hợp và hỗ trợ các thẻ cần thiết.
Ví dụ nếu bạn cần phải nhúng hình ảnh bạn có thể viết một cái gì đó như:

My Face: image- http://here.there/bla.gif

Trong đó sẽ tạo ra HTML cho bạn như thế này:

<a class='image-link' title='My Face' href='http://here.there/bla.gif'> 
    <img alt='My Face' src='http://here.there/bla.gif' /> 
</a> 

Có rất nhiều ngôn ngữ đánh dấu xung quanh, vì vậy chỉ cần chọn một ngôn ngữ phù hợp hơn với bạn và thêm các sửa đổi của riêng bạn. Ví dụ: GitHub sử dụng sửa đổi markdown và mã để phân tích cú pháp chỉ là một số couple của dòng.

Một bất lợi là người dùng cần tìm hiểu ngôn ngữ và không phải là WYSIWYG.

Trân trọng,
Dmitriy.

+0

Bạn có gợi ý rằng một cái gì đó giống như markdown không đòi hỏi bất kỳ điều kiện vệ sinh nào? – Noz

+0

@Noz không, tôi không có. –

Các vấn đề liên quan