2011-12-06 12 views
6

Plugin của tôi là đã dòng mô tả bằng sơ đồ dưới đây:Đó là kỹ thuật bảo mật tốt nhất cho javascript của tôi cắm

MyPlugin.js flows

Yêu cầu là làm cho giao dịch onclick xảy ra sau khi xác thực. Tức là, chỉ khi chủ sở hữu miền chứa page.html đã đăng ký với trang web của tôi (ví dụ: www.MyPluginJS.com/register) thì họ có thể sử dụng MyPlugin.js không.

Cổng thông tin đăng ký của tôi phun ra một số Client ID sau khi đăng ký lại thành công.

Câu hỏi của tôi là:

  1. cách tiếp cận tốt nhất mà tôi cần phải sử dụng để thực hiện các giao dịch onclick đảm bảo là gì?
  2. Các thông số khác (ví dụ: vân tay MD5) Tôi có thể yêu cầu đảm bảo rằng giao dịch diễn ra an toàn?
  3. Có bất kỳ khung công tác hiện có nào (ví dụ OAuth) mà tôi có thể tận dụng không?

Tôi cần một cách để ngăn mọi người sử dụng MyPlugin.js chưa đăng ký.

Tôi thiếu kinh nghiệm về kỹ thuật bảo mật nhưng tôi có thể quản lý mã.

Cảm ơn trước :)

+0

thực sự nói về bảo mật với javascript là không thực tế - thay vào đó tôi sẽ tìm cách cho phép/chặn quyền truy cập vào tệp .js đó từ phía máy chủ, dựa trên bất kỳ mã thông báo xác thực nào mà bạn nhận được ... – Leon

+0

@Leon cảm ơn time :) làm cách nào để chặn truy cập vào tệp .js ?? – codemaniac

+0

Bạn thực sự cần phải quấn logic nghiệp vụ vào máy chủ. Bất cứ điều gì javascript được tiếp xúc. Bất cứ ai cũng có thể sao chép tập tin javascript của bạn và phục vụ nó cục bộ, và ghi nhớ bất cứ ai có thể gọi bất kỳ chức năng javascript bằng tay bằng cách sử dụng bàn điều khiển nếu họ muốn. Javascript làm cho mọi thứ hoạt động tốt ở phía khách hàng, nhưng mọi thứ quan trọng đều phải xảy ra phía máy chủ và bạn phải luôn khử trùng mọi đầu vào từ plugin javascript. –

Trả lời

1

Bạn có thể phục vụ các tập tin JS sử dụng một số máy chủ ngôn ngữ bên và thêm một cặp khóa/giá trị cho các yêu cầu cho các tập tin js, pe: MyPlugin.js key = someValue. Tập lệnh của bạn có thể so sánh giá trị với một số giá trị bảng DB nơi bạn lưu trữ người dùng được ủy quyền.

HTH, Miguel

1

Bằng cách sử dụng jQuery, bạn có thể tận dụng lợi thế của hàm $.getScript(url) để tải một tập tin javascript từ server-side tránh việc sử dụng các <script> thẻ.

Ý tưởng là trỏ hàm getScript vào tập lệnh phía máy chủ trước tiên sẽ xác thực phiên của người dùng và trong trường hợp phiên hợp lệ, nó sẽ trả về nội dung tệp javascript của bạn để tải hoặc tệp javascript trống.

1

Tôi đã thấy một số người sử dụng ngày/giờ trên máy chủ web của họ để tạo mức bảo mật tương tự như những gì @Michi đang đề cập đến. Tuy nhiên, tôi đã không thử nó.

1

Tôi nghĩ bạn nên sử dụng session được tạo ở phía máy chủ để đảm bảo người dùng đã đăng nhập. Sau đó bạn có thể kiểm tra phía máy khách (để thuận tiện cho người dùng) nếu biến phiên được đặt và sau đó xác thực phía máy chủ phiên để bảo mật) để tránh người dùng giả mạo mã phía máy khách.

Sau đó, bạn có thể sử dụng AJAX để tải nội dung của trang plugin vào iframe. jQuery giúp AJAX dễ quản lý hơn nhiều. Vì vậy, câu trả lời đơn giản từ tôi là sử dụng kịch bản phía máy chủ và các biến phiên để đảm bảo bảo mật và jQuery và AJAX ở phía máy khách để thuận tiện cho người dùng.

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