암호화없이 PHP 코드를 보호하는 최상의 솔루션
우선, 저는 기적을 찾고 있지 않습니다 ... 저는 PHP가 어떻게 작동하는지 알고 있으며 암호화를 사용하지 않고 클라이언트로부터 내 코드를 숨길 수있는 방법이 없다는 것을 알고 있습니다. 그러나 실행중인 서버에 확장을 설치하는 데 드는 비용이 따릅니다.
나는 뭔가 다른 것을 찾고 있는데 ... 나는 내 코드를 암호화하거나 심지어 난독 화하려고하지 않는다. 암호화 / 난독 화 된 코드가없는 PHP 스크립트가 많이 있지만 상용 응용 프로그램입니다. 예를 들어, vBulletin 및 / 또는 IP.Board 포럼 애플리케이션.
이 사람들이 응용 프로그램에 어떤 접근 방식을 사용하는지 알고 싶습니다.
다른 제안에도 열려 있습니다.
나는 독신이며 회사에서 일하지 않습니다. 내 제품도 매우 구체적이며 그렇게 많이 팔리지 않을 것입니다. 누군가를 고소하거나 상업용 라이선스를 준비하기 위해 법률 전문가와 상담 할 여유가 없다는 것을 여러분이 알아 주셨으면합니다. 난 그냥 내 간단한 제품을 보호 할 수있는 간단한 방법을 찾고 있는데, 정말 가능하다면 어떻게 든 ...
난독 화하는 것은 합법적이고 법을 준수하는 고객에게만 불편을 줄 수 있으며, 당신을 찢어 버리는 사람들은 어쨌든 당신의 목표가 아닌 고객을 지불합니다. (난독 화에 대한 다른 생각 편집)
소프트웨어 보호를위한 또 다른 제안 : 코드가 제품 가치의 불완전한 부분 인 비즈니스 모델을 만드십시오. 예를 들어 사이트에서 관리하는 일부 데이터에 대한 액세스와 함께 제품 라이선스를 판매하거나 구독 모델 또는 고객 지원을 통해 제품 라이선스를 취득 할 수 있습니다.
EULA 디자인은 코딩 문제가 아니라 법적 문제입니다. 사용하는 제품 및 웹 사이트에 대한 EULA 텍스트를 읽는 것으로 시작할 수 있습니다. 흥미로운 세부 사항을 찾을 수 있습니다!
독점 라이선스를 만드는 것은 매우 유연하며 엄격하게 코딩에 관한 것이 아니기 때문에 StackOverflow의 의도 된 범위를 벗어난 주제 일 수 있습니다.
떠오르는 EULA의 일부 :
- 제품에 버그가 있거나 손상이 발생한 경우 책임을 제한합니다.
- 고객이 라이선스 소프트웨어를 사용할 수있는 방법, 얼마나 오래, 몇 대의 컴퓨터에서, 재배포 권한이 있거나 없는지 등을 설명합니다.
- 사이트를 감사 할 수있는 권한을 부여하여 라이선스를 시행 할 수 있습니다.
- EULA를 위반하면 어떻게됩니까 (예 : 소프트웨어 사용 권한을 잃는 경우).
상업용 EULA를 준비하려면 법률 전문가와상의해야합니다.
편집 : 이 프로젝트가 변호사 비용을 정당화 할 수 없다면 다음 리소스를 확인하십시오.
- joelonsoftware에 대한 " EULA 조언 "
- " 최종 사용자 사용권 계약을 작성하는 방법 "
목표를 고려해야합니다.
1) 사람들이 귀하의 코드를 읽거나 수정하는 것을 방지하려고합니까? 그렇다면 난독 화 / 암호화 도구가 필요합니다. 저는 Zend Guard 를 성공적으로 사용했습니다.
2) 코드의 무단 재배포를 방지하려고합니까? EULA / 독점 라이선스는이를 방지 할 수있는 법적 권한을 제공하지만 실제로 중단하지는 않습니다. 키 / 활성화 체계를 사용하면 사용량을 적극적으로 모니터링 할 수 있지만 코드를 암호화하지 않는 한 제거 할 수 있습니다. Zend Guard에는 특정 스크립트를 특정 고객 시스템에 잠 그거나 원하는 경우 시간 제한 버전의 코드를 만드는 기능도 있습니다.
저는 vBulletin 등에 익숙하지 않지만 암호화 / 난독 화하거나 사용자가 올바른 작업을 수행하도록 신뢰해야합니다. 후자의 경우 바람직하지 않은 행동을 금지하는 EULA와 EULA 위반을 백업하는 법적 시스템을 보유 할 수 있습니다.
소프트웨어를 보호하기 위해 법적 조치를 취할 준비가되어 있지 않거나 / 암호화 / 난독 화하고 싶지 않은 경우 옵션은 a) EULA로 릴리스하여 필요한 경우 법적 옵션이 있습니다. 그리고 최선을 희망하거나 b) 오픈 소스 라이선스가 더 적절한 지 고려하고 재배포 만 허용합니다.
PHP 컴파일러를 사용할 수 있습니다.
나는 한동안 VBulletin 소스 코드를 보지 않았지만 2003 년경에 그들이 사용했던 방식은 코드 내부에 서버 호출을 삽입하는 것이 었습니다. IIRC는 정말 긴 코드 라인 (예 : 200-300 + 문자 길이)에 있었고 여러 문자열 연결 등으로 나뉘 었습니다.
해적판으로도 "나쁜"일은 없었습니다. 포럼은 여전히 100 % 작동했습니다. 그러나 서버의 IP는 다른 정보와 함께 기록되었으며이를 조사하고 법적 조치를 취하는 데 사용되었습니다.
귀하의 라이선스 번호가이 호출에 포함되어 있으므로 주어진 라이선스 사본이 실행중인 IP / 웹 사이트 수를 쉽게 추적 할 수 있습니다.
직접 호스팅하고 웹을 통해 액세스하는 "클라우드 앱"을 만들 수없는 경우 가상 서버 (VMWare, Parallels, Sun 등)를 사용하여 가상 어플라이언스를 만들고 "lite"를 설치할 수 있습니다. "Linux 버전. 가상 환경에 PHP 코드를 넣고 서버에 가상 머신을 설치합니다. 루트로로드되지 않도록하는 방법을 만들어야합니다. 물론 이것은 직접 클라이언트를 직접 방문하는 것을 포함합니다.
그들은 독점 라이센스 하에 소프트웨어를 배포합니다 . 법률은 자신의 권리를 보호하고 고객이 소스를 재배포하는 것을 방지하지만 실제로 그렇게하는 데에는 어려움이 없습니다.
그러나 잘 알고 계시 겠지만 소프트웨어 제품의 저작권 침해 (해적판)는 매우 흔한 현상 입니다.
제 생각에는 PHP 코드 프로그램이 독립형 모델 용으로 작성된 경우를 대비하여 ... 최상의 솔루션은 c) Phalanger (.NET)와 같은 컨테이너에 PHP를 래핑 할 수 있습니다. 모두가 알고 있듯이 특히 프로그램이 Windows 사용자를 대상으로 한 경우 시스템에 단단히 묶여 있습니다. .NET / VB / C #과 같은 Windows 프로그래밍 언어 또는 .NET prog.lang.family 세트에서 알고있는 모든 언어로 자신 만의 보호 알고리즘을 만들 수 있습니다.
당신의 php-application을 다른 사람들로부터 실제로 보호하는 유일한 방법은 소스 코드를 공유하지 않는 것입니다. 온라인 어딘가에 코드를 게시하거나 어떤 매체를 통해 고객에게 코드를 보내면 다른 사람들이 코드에 액세스 할 수 있습니다.
코드의 모든 사본에 고유 한 워터 마크를 추가 할 수 있습니다. 이렇게하면 단일 고객에 대한 누출을 추적 할 수 있습니다. (하지만 코드가 이미 통제 범위를 벗어 났기 때문에 도움이 될까요?)
내가 보는 대부분의 코드에는 라이센스와 보증이 함께 제공됩니다. 스크립트를 변경하지 말라고 사람들에게 알리는 대본 상단의 줄이면 충분할 것입니다. 본인; 비 오픈 소스 코드를 발견하면 내 프로젝트에서 사용하지 않습니다. 어쩌면 나는 약간 속이는 것일 수도 있지만, ppl이 OSS가 아닌 코드를 사용하지 않을 것이라고 기대합니다!
Zend Guard는 php 5.5를 지원하지 않으며 쉽게 되돌릴 수 있습니다. http://www.ioncube.com 에서 난독 화 를 확인 하세요 . http://wwww.phplicengine.com 은 스크립트를 원격 또는 로컬로 라이센스 할 수 있습니다.
SD PHP Obfuscator를 참조하십시오 . 거대한 PHP 파일 시스템을 처리합니다. PHP 서버에 대한 런타임 요구 사항이 없습니다. 추가 런타임 오버 헤드가 없습니다.
[2016 년 5 월 편집] 최근 답변에 따르면 Zend는 PHP5.5를 처리하지 않습니다. SD PHP Obfuscator가 수행합니다.
그러니 보자, 우리는 아담과 이브에게 나무에 금단의 열매가 있다는 것을 보여주고 싶습니다. 그리고 우리는 그들이 먹지 못하게하는 방법을 원합니다.
불타는 검을 든 천사를 갖는 것은 어떻습니까?
순진하게 들릴지 모르지만 응용 프로그램이 실제로 무엇을하는지 모르겠지만 포함을 광범위하게 사용하는 것은 어떻습니까?
합법적 인 사용자의 경우 모든 소프트웨어가 표시되어야합니까, 아니면 일부만 표시됩니까? 소스 코드의 사본을 난독 화하여 합법적 인
Phalanger (.NET)와 같은 컨테이너에 PHP를 래핑 할 수 있습니다.
Perhaps your concerned with external theft, meaning your code freely visible over the web as customers uses it. This could be worth investing in a cheap web site hosting, for $50 a year, registering your legit customers with a serial in their code and have your app posting info to your web site regularly. At least, you'd detect when code has been compromised. You could push it with a self destruct after n days, giving you enough time to contact your customer and change the serial. This could be the only obfuscated include() of the whole code
참고URL : https://stackoverflow.com/questions/336057/best-solution-to-protect-php-code-without-encryption
'Programing' 카테고리의 다른 글
Android Studio 2.2.1에서 새 프로젝트를 실행하려고 할 때 오류가 발생합니다. (0) | 2020.11.10 |
---|---|
Angular Material Angular Material 핵심 테마를 찾을 수 없습니다. (0) | 2020.11.10 |
Fabrice Bellard의 Javascript에서 Linux 에뮬레이터는 어떻게 작동합니까? (0) | 2020.11.09 |
Scala에 적합한 GUI 프레임 워크? (0) | 2020.11.09 |
PL / SQL에서 함수와 프로 시저의 차이점은 무엇입니까? (0) | 2020.11.09 |