it-swarm-ko.tech

안전한 WordPress 유료 플러그인

WordPress 플러그인을 만들고 싶지만 플러그인이 각 도메인마다 고유해야하는 직렬 키로 활성화 된 후에 만 ​​플러그인을 사용할 수있게하려는 것입니다.

가정 할 때 가장 좋은 방법은 무엇입니까?

  1. 실제 소스 코드를 사용자에게 제공해야하며 VideoPress 유형의 보안을 가질 수 없습니다. 플러그인의 서버에서 제공되는 실제 콘텐츠에 대한 JavaScript 래퍼 일뿐입니다.
  2. 나는 초보자가 평균 PHP 개발자가 보안을 쉽게 확인할 수 없도록하고 싶다.
5
Adhip Gupta

옵션 1 - 시스템에서 일부 데이터 처리

플러그인의 모든 처리를 자신의 서버에 두지는 않겠지 만 하나 또는 두 개의 중요한 기능을 선택하여 시스템에 호스팅 된 상태로 유지하십시오. 그런 다음 서버와 통신 할 수 있도록 플러그인을 사용하는 각 사이트에 대한 API 키가 필요합니다.

옵션 2 - 저장된 데이터를 암호화하고 호스팅 된 암호 해독 키가 필요합니다.

또 다른 대안은 기본 암호화 설정입니다. 이것은 실제로 잠시 동안 함께 해왔 던 시스템입니다. 아직 어디서나 배포 할 필요가 없습니다. 코드 자체 (GPL에 충실하기 위해)는 당신이 기대하는 것처럼 모두 평문입니다. 그러나 저장된 모든 데이터 (기본값, 플러그인 설정 등)는 데이터베이스에 저장되기 전에 암호화됩니다. 여기에있는 속임수는 원격 시스템의 플러그인에 암호 해독 키가 없다는 것입니다. 데이터를 해독하려면 API 키를 시스템에 게시 한 다음 해독 키로 응답해야합니다. 그런 다음 플러시되기 전에 특정 기간 동안 임시 (임시 옵션)에 저장할 수 있습니다. 트래픽이 많은 동안 2 초마다 서버에 사이트가 도달하지 않도록합니다.

그러나이 방법의 단점은 이점을 능가 할 수 있습니다. (이것이 내가 아직 어느 곳에도 배치하지 않은 이유입니다). 우선, 잘 아는 프로그래머가 암호 해독 키를 캡처 할 수 있으며 더 이상 서버가 필요하지 않습니다. 아니면 모든 암호화/해독 훅을 플러시하고 일반 텍스트로 실행할 수 있습니다. 이것은 사용자를위한 오픈 소스의 장점이며 무료이지만 제한된 시스템을 배포하려는 개발자에게는 불리한 점입니다.

다른 단점은 서버 의존성입니다. 과도기에 키를 저장하면 서버에서 부담을 덜어줍니다. 그러나 사이트가 1 ~ 2 시간 동안 다운되면 플러그인을 사용하는 모든 사이트 는 일종의 우아한 비활성화를 계획하지 않는다면 1 시간에서 2 시간은 걸릴 것입니다. 또한 사람들이 시스템을 계속 사용한다면 서버 가동 및 유지 관리 기간을 무기한으로 유지해야합니다.

옵션 3 - "무료"버전의 기능 제한

마지막 옵션과 내가 적극적으로 사용하고있는 것은 플러그인의 기능 세트와 기능을 분리하는 것입니다. 시스템의 핵심 (UI, 기본 기능 등)은 등록없이 자유롭게 사용할 수 있습니다. 더 많은 고급 기능을 사용하려면 사용자가 사본을 등록하고 활성화 키를받은 다음 해당 키를 UI에 입력하여 프로세스를 완료해야합니다. 그러면 플러그인이 서버에서 확인하고 추가 프리미엄 "애드온"을 시스템에 다운로드해야합니다 .

단점은 일단 다운로드되면 모든 코드가 이제 사용자 사이트에 있고 GPL 하에서는 여전히 전체 패키지를 재배포 할 수 있다는 점입니다. 장점은 시스템에 한 번만 의존하므로 장기간 다운로드/처리를 지원하지 않아도된다는 것입니다.


앞으로 나아 가기로 결정한 어떤 방법 으로든, 서버에 일종의 외부 API를 유지하거나 사용자에게 시스템의 전체 소스를 제공하는 등의 방법으로 공격을 받게됩니다. 시스템에 일부 기능을 계속 사용한다면 거의 100 % 가동 시간을 보장해야만 가치가 있습니다. 전체 소스를 제공하려는 경우 다른 사람이 시스템을 재배포하는 것을 방지 할 수있는 방법이 없습니다 (GPL 아래).

4
EAMann

소스 코드를 워드 프레스 사용자로부터 숨길 수 없으며 라이선스 관련 사항으로 인해 플러그인의 재배포를 제한 할 수 없습니다.

플러그인으로 WordPress 파생물을 만들고있어 사용자가 소스를 가져 와서 자유롭게 재배포 할 수 있습니다 자유 소프트웨어에서 네 가지 자유를 볼 수 있습니다 ).

WordPress가 GPLv2에 따라 라이선스가 부여되어 있고 미국 이외의 고객이있는 경우 GPL 위반이 귀하의 ( "보호 된") 제품에 미칠 수있는 영향을 처리해야합니다.

사용자의 벤더 종속을 구현하려고합니다.

3
hakre

중도에서 괜찮은 프로그래머가 해킹 할 수없는 보안 라이센스를 가진 분산 플러그인을 사용하는 유일한 방법은 Akismet과 같은 자체 서버에서 플러그인의 주요 기능을 실행하는 것입니다. 사용자는 라이센스 키가 들어있는 서버로 요청을 보내야합니다. 키가 체크 아웃되면 마지막에 소스 코드를 실행하고 결과를 다시 보냅니다.

2
John P Bloch