https://github.com/del-xiong/screw-plus
http://git.oschina.net/splot/php-screw-plus
screw plus는 오픈 소스 PHP입니다. 확장 기능은 PHP 파일을 암호화하는 것입니다. 인터넷에는 많은 PHP 암호화 서비스가 있지만 대부분은 난독화 수준의 암호화만 제공합니다. 누군가가 암호화된 파일을 가져와 요청하면 해독될 수 있습니다. 차이점은 Screw Plus는 확장 프로그램을 사용하여 암호화하고 복호화하며, 이는 글로벌 금융 업계에서 널리 사용되는 강력한 AES256 암호화 방식이므로 서버가 해킹되지 않는 한 해커가 획득한 암호화된 파일은 . 왜곡된 문자의 집합입니다.
동일한 암호화 수준에는 ioncube와 공식 zendguard가 포함되어 있지만 둘 다 1년에 최소 수천 위안의 비용이 청구되므로 일반 개발자는 시도해 볼 가치가 없습니다. 한 푼도 더 쓸 필요가 없습니다.
다음은 LNMP 원클릭 설치 환경을 예로 들어 스크류 플러스의 구성을 보여줍니다
먼저 서버에 코드 복사본을 복제합니다
git clone https://git.oschina.net/splot /php-screw-plus.git
프로젝트 디렉토리에 들어가서 php의 phpize 파일을 실행하세요. phpize는 확장 개발 환경을 동적으로 생성하기 위해 공식적으로 제공되는 실행 파일입니다. 일반적으로 bin에서 찾을 수 있습니다. PHP의 디렉토리. LNMP의 PHPIZE(/USR/LOCAL/PHP/BIN/PHPIZE
/USR/LOCAL/PHP/BIN/PHPIZE
CONFIGURING 대상:
Php Api 버전: 20100412
zend) 모듈 번호: 20100525
Zend Extension Api No: 220100525
성공적으로 실행되면 현재 PHP API 버전, Extension API 버전 등을 확인할 수 있습니다. 다음 단계는 구성을 시작하는 것입니다. 구성 명령은 ./configure --with-php-config=[php-config]이며, [php-config]는 일반적으로 php의 bin 디렉토리에도 있으므로 절대 경로를 작성하면 됩니다.
./configure --with-php-config=/usr/local/php/bin/php-config
오류가 보고되지 않으면 구성이 성공한 것이며 컴파일의 다음 단계를 시작할 수 있습니다.
컴파일하기 전에 암호화된 키를 수정할 수 있습니다. php_screw_plus.h를 열면 시작 부분이 #define CAKEY "..."이고 내부 값을 충분히 복잡한 키(바람직하게는 16자리 이상)로 변경하는 것을 볼 수 있습니다. 예: 9mqss6q7WsBpTMOZ
vi php_screw_plus.h
수정 후 직접 컴파일을 시작하고 마지막에 Build Complete가 표시되면 컴파일이 성공하고 확장이 모듈에 있음을 의미합니다. 오류가 보고되면 프롬프트에 따라 복구한 후 make clean 후 다시 컴파일하십시오.
make
...
빌드 완료.
위에서 컴파일한 것이 복호화 프로그램이고, 암호화 프로그램도 수동으로 컴파일해야 합니다. tools 디렉터리에 들어가서 make 명령을 실행하면 됩니다. 오류가 보고되지 않으면 확장이 완전히 컴파일됩니다.
cd tools/
make
그런 다음 php.ini에 확장 경로를 추가해야 합니다. module/php_screw_plus.so를 php 확장 디렉터리에 복사하거나 ini에 직접 절대 경로를 추가할 수 있습니다. 일반적으로 확장을 수정하고 컴파일한 후 다시 복사할 필요가 없도록 절대 경로를 선호합니다.
vi php/etc/php.ini
절대 경로를 추가하세요. 예를 들어
extension=/home/php_screw_plus-1.0/modules/php_screw_plus.so
그런 다음 PHP 서비스를 다시 시작하세요. php 파일을 실행하여 phpinfo 정보를 출력하는 경우 다음 프롬프트가 표시되면 확장이 적용되었음을 의미합니다.
마지막 단계는 암호화 프로세스입니다.
확장 도구 디렉터리에서 ./screw [경로]를 실행합니다. [경로]는 단일 파일 또는 폴더일 수 있으며 암호화가 가능합니다.
암호화가 완료된 후 소스코드를 확인해보면 처음 몇 글자를 제외하고 나머지 글자가 깨져 있는 것을 확인할 수 있습니다.
그런데 웹사이트를 열면 암호화가 없는 것처럼 php가 정상적으로 실행됩니다. 테스트 후, 암호 해독 속도는 초당 약 100M이며, PHP 자체의 성능 손실은 일반적으로 20밀리초 미만으로 매우 작습니다.
Screw plus에는 승인되지 않은 PHP 파일의 실행을 방지하는 기능도 있으므로 해커가 코드를 업로드하더라도 여전히 취약할 수 있습니다.
php_screw_plus.h도 비슷하게 수정하고, STRICT_MODE 뒤의 값을 1로 변경하고, make clean && makerecompile하고 PHP를 다시 시작한 다음, 이전에 암호화된 웹사이트를 열면 실행은 정상이지만, 우리는 클리어를 업로드합니다. 텍스트 PHP 파일을 마음대로 실행하면 결과는 비어 있습니다.
암호화되지 않은 PHP 파일 헤더에는 식별 키가 포함되어 있지 않으며, 확장 프로그램은 해커가 키를 획득하여 추가하더라도 내용이 왜곡된 코드로 해독되어 쓸모가 없기 때문입니다. 아직 실행할 수 없습니다. 스크류 플러스의 보호 기능으로 홈페이지 전체를 다운로드 받거나, 악성코드가 업로드 되더라도 홈페이지에 피해를 주지 않습니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP 코드 보안을 보호하려면 무엇을 사용해야 합니까? 스크류 플러스 캔!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!