2016-07-18 2 views
-1

PHP 소스 코드를 인코딩하거나 암호화하려면 어떻게해야합니까?PHP 소스 코드 암호화/Obfuscator

  1. 나는,이 PHP Base64 encoder을 시도했습니다 문제는 그것을 알고 사람을 해독하기 쉽다는 점이다.

  2. 강력한 암호를 사용하기 위해이 코드를 AES Enryption으로 사용하지만 일부 PHP 코드를 암호화하면 내 페이지가 작동하지 않습니다.

가장 좋은 방법은 무엇입니까? Ioncube 나 Loader를 사용하고 싶지 않습니다.

+4

가능한 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). 당신은 소스 코드에 전혀 접근 할 수없는 사람에 대해 더 걱정해야합니다 ... – FirstOne

답변

0

PHP 코드를 암호화하면 잘못된 보안 감을 줄 수 있습니다. PHP 파서가 이해할 수 없으므로 정말로 암호화 된 코드를 실행할 수 없습니다. 스크램블 또는 코드를 코드로 사용하는 것으로 생각하는 것이 더 정확하다고 생각합니다. 이렇게하면 코드를 읽는 것이 훨씬 어려워집니다. 그러나 항상 역설적입니다. 동기가 부여 된 적으로부터 높은 가치의 것을 보호한다면, 난독 화는 단지 시간 만 벌 수 있습니다.

코드를 난독 화하는 많은 솔루션이있을 수 있습니다. 가장 인기있는 옵션 중 하나는 IonCube Loader입니다. 나는 그것을 사용한 적이 없으며 그 효과에 익숙하지 않지만 내가 아는 유일한 것입니다. 다른 사람들은 자신의 의견을 환영합니다.

원본 파일을 보호하기 위해 신뢰할 수없는 사람이 액세스 할 수있는 환경에 파일을 저장하지 않으려 고합니다. 예를 들어 중요한 PHP 파일이 웹 서버의 공개적으로 액세스 할 수있는 디렉토리 (일반적으로 public_html 또는 www) 외부에 있는지 확인하는 간단한 단계를 수행 할 수 있습니다.

+0

"PHP 파서가 이해할 수 없으므로 정말로 암호화 된 코드를 실행할 수 없습니다." 이것이 ionCube와 같은 솔루션이 코드를 실행하도록 확장 된 이유입니다. 인코딩은 먼저 바이트 코드로 컴파일 한 다음 보호 기능을 추가합니다. 일부 사용자는 V9 ionCube와 같이 암호화하여 어디에도 저장되지 않은 동적 키를 사용하여 저장된 키의 고유 한 약점을 해결할 수 있습니다. OP는 확장을 원하지 않기 때문에 유일한 옵션은 eval()을 통해 소스를 보호하는 것입니다. 이것은 충분할 수 있지만 소스가 아주 쉽게 노출 될 수 있습니다. 공개 : ionCube와 관련이 있습니다. – Nick

+0

@ 닉 "* eval() *을 통해 소스를 보호"한다는 것은 무엇을 의미합니까? – BeetleJuice

+0

정확히 말하면 PHP 자체는 소스 만 이해할 수 있기 때문에 확장자를 사용하지 않는 모든 보호자가 맹 글링 된 코드를 소스 코드의 일부 형식으로 복원해야합니다. (AGH! 우연히 반환 게시물에 주석을다는 것을 싫어합니다.) 그런 다음 접근법은 복원 된 소스에서 eval()을 호출하는 것입니다. 소스는 eval()이 사용하는 PHP 엔진 API C 루틴을 패치함으로써 노출 될 수 있습니다. – Nick