2010-10-22 37 views
6

Tôi đang xem xét bắt tay vào một dự án mới. Các tiền đề của dự án là tạo ra một widget trên trang web của tôi, sau đó sao chép một đoạn javascript vào trang web của bạn và viola bạn có widget của bạn.Tiện ích javascript riêng tư

Đó là tính năng mới trên các dịch vụ hiện có như polldady.com, twiig.com và addthis.com.

Nhiều dịch vụ như vậy được thiết kế để có thể truy cập công khai. Có nghĩa là nhà cung cấp tiện ích không quan tâm bạn đang đăng dữ liệu lại cho họ. Trong thực tế, họ khuyến khích lan rộng các widget càng xa càng tốt.

Tuy nhiên, dịch vụ của tôi có một bước ngoặt độc đáo. Trong trường hợp của tôi, mặc dù các widget sẽ được mở công chúng, tôi cần phải chắc chắn rằng yêu cầu bài viết xuất phát chỉ đến từ trang web dự kiến ​​mà thôi.

Do vấn đề xss với các tiện ích javascript này, tôi cần phải tạo động khung nội tuyến nơi tiện ích của tôi sẽ được hiển thị.

Có mô hình xác thực để xử lý loại tương tác này không?

Trả lời

3

Trước hết việc sử dụng khung nội tuyến này là vi phạm Same Origin Policy. Với JavaScript cũ đơn giản, bạn có thể tạo một <form> và gọi .submit() để kích hoạt yêu cầu bài đăng này ở bất kỳ đâu. Trong thực tế, đây là cách khai thác CSRF dựa trên POST hoạt động. Bạn có thể kiểm tra số referer của yêu cầu POST này, tuy nhiên nếu nó đến từ trang https, giá trị này sẽ trống. (mà sau đó bạn có thể từ chối dịch vụ ...). Việc gửi document.location dưới dạng biến POST là không thể chấp nhận vì nó là tầm thường để sửa đổi tiện ích này để báo cáo giá trị được sửa đổi. Tuy nhiên, người giới thiệu chứa trong yêu cầu http đến là off limits to the website's operator.

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