2013-04-28 19 views
8

Tôi muốn dịch vụ của mình có tính năng như vậy: tác giả hoàn toàn có thể tùy chỉnh trang nhưng không thể lấy cắp cookie của người dùng.Bảo vệ XSS HTML người dùng có thể chỉnh sửa (tumblr like)

Tumblr đã có một số rắc rối với điều đó, nhưng giải quyết chúng thành công http://www.riyazwalikar.com/2012/07/stored-persistent-xss-on-tumblr.html

Vì vậy, tôi cần những giải pháp với

  1. không điều độ
  2. truy cập vào mã html của trang cho người dùng giả, don không muốn ngôn ngữ lập danh sách và bộ lọc danh sách trắng (đó là cách hoạt động của nó ngay bây giờ :()
  3. không có cơ hội đánh cắp cookie của người khác (trên trang của các tác giả khác)
  4. tập trung xác thực db
  5. mong muốn: không xác thực trên mỗi trang tác giả

Theo tôi được biết tumblr:

  1. lĩnh vực riêng biệt mà không cần truy cập vào các tập tin cookie của nhau
  2. người dùng vẫn chứng thực trên mỗi tên miền phụ (CÁCH ??? www.tumblr.com js có quyền truy cập vào các cookie phiên chính không? Là an toàn?)
  3. cookie auth nên được HttpOnly? ..

Tôi có thể có an toàn và thoải mái cho người dùng giải pháp? Có phải vấn đề chính là truy cập toàn bộ vào html không?

Trả lời

3

Tôi muốn dịch vụ của mình có tính năng như vậy: tác giả hoàn toàn có thể tùy chỉnh trang nhưng không thể lấy cắp cookie của người dùng.

Vì vậy, tôi đoán rằng bạn muốn bật javascript cho họ nhưng bạn không muốn cho phép thao tác cookie. Điều này cần được đơn giản: chỉ cần đặt nó trước khi tải trang của người dùng:

if (document.__defineGetter__) 
{  
    document.__defineGetter__("cookie", function() { return ""; }); 
    document.__defineSetter__("cookie", function() { }); 
} 
else // IE 
{ 
    Object.defineProperty(document, "cookie", 
    { 
     get: function() { return ""; }, 
     set: function() { return true; }, 
    }); 
} 

người dùng vẫn được chứng thực trên mỗi tên miền phụ (CÁCH ??? www.tumblr.com js có quyền truy cập vào các tập tin cookie phiên chính ? Có an toàn không?)

Điều này cũng đơn giản - cookie hỗ trợ điều này. domain thuộc tính của nó:

Set-Cookie: name=value; path=/; domain=.example.com 

cookie auth nên HttpOnly ..

Tất nhiên - họ nên được cho sự an toàn tốt hơn?.

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