it-swarm-vi.tech

Plugin trả phí WordPress an toàn

Tôi muốn tạo một plugin WordPress nhưng cũng muốn đảm bảo rằng plugin chỉ có thể được sử dụng sau khi nó được kích hoạt bằng một khóa nối tiếp nên là duy nhất cho mỗi tên miền.

Cách tốt nhất để đi về nó là gì:

  1. Tôi phải cung cấp mã nguồn thực tế cho người dùng và không thể có loại bảo mật VideoPress - đây chỉ là một trình bao bọc JavaScript cho nội dung thực tế đến từ máy chủ của plugin.
  2. Tôi muốn đảm bảo rằng một người mới làm quen với mức trung bình PHP sẽ không thể xác nhận bảo mật một cách dễ dàng.
5
Adhip Gupta

Tùy chọn 1 - Xử lý một số dữ liệu trên hệ thống của bạn

Tôi sẽ không đặt tất cả quá trình xử lý của trình cắm trên máy chủ của riêng bạn, nhưng chọn một hoặc hai chức năng quan trọng và giữ chúng được lưu trữ trên hệ thống của bạn. Sau đó, yêu cầu khóa API cho từng trang web sử dụng trình cắm để chúng có thể giao tiếp với máy chủ của bạn.

Tùy chọn 2 - Mã hóa dữ liệu được lưu trữ và yêu cầu khóa giải mã được lưu trữ

Một cách khác là thiết lập mã hóa cơ bản - đây thực sự là một hệ thống mà tôi đã từng chơi đùa trong một thời gian, tôi chưa bận tâm đến việc triển khai nó ở bất cứ đâu. Bản thân mã (để đúng với GPL) là tất cả các bản rõ như bạn mong đợi. Tuy nhiên, tất cả dữ liệu được lưu trữ (giá trị mặc định, cài đặt trình cắm, v.v.) được mã hóa trước khi được lưu vào cơ sở dữ liệu. Thủ thuật ở đây là trình cắm trên hệ thống từ xa không có khóa giải mã - để giải mã dữ liệu, nó phải đăng khóa API của nó lên hệ thống của bạn để phản hồi bằng khóa giải mã. Điều này sau đó có thể được lưu trữ trong một tạm thời (tùy chọn tạm thời) trong một khoảng thời gian nhất định trước khi bị xóa - theo cách đó bạn không có một trang web nào chạm vào máy chủ của bạn cứ sau 2 giây khi lưu lượng truy cập lớn.

Tuy nhiên, nhược điểm của phương pháp này có thể lớn hơn lợi ích (đó là lý do tại sao tôi chưa triển khai nó ở bất cứ đâu). Trước hết, một lập trình viên hiểu biết có thể nắm bắt khóa giải mã và sau đó họ không cần máy chủ của bạn nữa. Hoặc họ chỉ có thể tuôn ra tất cả các móc mã hóa/giải mã và chạy trong bản rõ. Đây là lợi thế của nguồn mở cho người dùng và bất lợi cho nhà phát triển muốn phân phối một hệ thống miễn phí nhưng bị hạn chế.

Nhược điểm khác là sự phụ thuộc vào máy chủ của bạn. Lưu trữ khóa trong một thoáng qua sẽ giảm bớt gánh nặng cho máy chủ của bạn ... nhưng nếu trang web của bạn ngừng hoạt động trong một hoặc hai giờ, thì mỗi trang web sử dụng trình cắm của bạn giảm xuống trong một hoặc hai giờ trừ khi bạn có kế hoạch cho một số loại ngừng hoạt động duyên dáng. Ngoài ra, điều đó có nghĩa là bạn phải duy trì hoạt động của máy chủ nói không giới hạn nếu mọi người tiếp tục sử dụng hệ thống của bạn.

Tùy chọn 3 - Giới hạn các tính năng của phiên bản "miễn phí"

Tùy chọn cuối cùng và một tùy chọn tôi đang tích cực sử dụng là phân chia tính năng và chức năng của trình cắm thêm của bạn. Cốt lõi của hệ thống (UI, các tính năng cơ bản, v.v.) có sẵn miễn phí mà không cần đăng ký. Để có các tính năng nâng cao hơn, người dùng phải đăng ký bản sao của mình, lấy khóa kích hoạt, sau đó nhập khóa đó vào UI để hoàn tất quy trình - bổ trợ sau đó xác minh với máy chủ của bạn và tải thêm "tiện ích bổ sung" cao cấp cho hệ thống .

Nhược điểm ở đây là một khi đã tải xuống, tất cả các mã hiện nằm trên trang web của người dùng và, theo GPL, họ vẫn có thể phân phối lại gói đầy đủ. Ưu điểm là nó chỉ phụ thuộc vào hệ thống của bạn một lần và không yêu cầu bất kỳ loại hỗ trợ tải xuống/xử lý dài hạn nào.


Bất cứ cách nào bạn quyết định tiến về phía trước, bạn sẽ bị ảnh hưởng với việc duy trì một số loại API bên ngoài trên máy chủ của bạn hoặc cung cấp toàn bộ nguồn hệ thống cho người dùng của bạn. Nếu bạn giữ một số chức năng trên hệ thống của mình, bạn gần như phải đảm bảo 100% thời gian hoạt động để nó có giá trị. Nếu bạn sẽ cung cấp nguồn đầy đủ, không có cách nào (theo GPL) để ngăn người khác phân phối lại hệ thống của bạn.

4
EAMann

Bạn không thể ẩn mã nguồn khỏi người dùng WordPress cũng như không được phép giới hạn phân phối lại plugin của bạn vì liên quan đến cấp phép.

Bạn đang tạo một sản phẩm WordPress với plugin của mình và người dùng của bạn có quyền lấy nguồn của nó và tự do phân phối lại nó (xem bốn quyền tự do trong phần mềm miễn phí ).

Giả sử WordPress được cấp phép theo GPLv2 và bạn đã có khách hàng không ở Hoa Kỳ, bạn nên xử lý các tác động của vi phạm GPL mà bạn có thể có trong sản phẩm ("được bảo vệ") của mình.

Bạn đang cố gắng thực hiện khóa nhà cung cấp cho người dùng của mình.

3
hakre

Cách duy nhất để có một plugin phân tán có giấy phép an toàn mà bất kỳ lập trình viên nửa chừng nào cũng không thể hack là chạy chức năng chính của plugin trên máy chủ của bạn, như Akismet. Người dùng phải gửi yêu cầu đến máy chủ của bạn có chứa khóa cấp phép của họ. Nếu khóa kiểm tra, thực thi mã nguồn ở cuối của bạn và gửi lại kết quả.

2
John P Bloch