이것은 단지 WordPress File API 의 아이디어를 어떻게 이해했는지 입니다. 그것이 틀렸다면, downvote하십시오 :)
괜찮아. 파일을 업로드하면이 파일에 소유자가 있습니다. FTP를 사용하여 파일을 업로드하면 로그인하고 FTP 사용자가 파일을 소유하게됩니다. 자격 증명이 있으므로 FTP를 통해 이러한 파일을 변경할 수 있습니다. 소유자는 일반적으로 파일을 실행, 삭제, 변경 등을 할 수 있습니다. 물론 파일 권한 을 변경하여이를 변경할 수 있습니다 .
PHP를 사용하여 파일을 업로드하면 PHP를 실행하는 Linux 사용자가 파일을 소유하고 있습니다. 이 사용자는 이제 파일을 편집, 삭제, 실행할 수 있습니다. 시스템에서 PHP를 실행하는 사용자 인 한 괜찮습니다.
"잘못 구성된"공유 호스트에 있다고 가정합니다. 많은 사람들이이 시스템에서 PHP 웹 사이트를 운영합니다. 한 명의 리눅스 사용자 만이이 모든 사람들을 위해 PHP를 실행한다고 가정 해 봅시다. 이 공유 호스트의 웹 마스터 중 하나가 잘못된 의도를 가지고 있습니다. 그는 귀하의 페이지를보고 워드 프레스 설치 경로를 알아냅니다. 예를 들어, WP_DEBUG가 true로 설정되고 다음과 같은 오류 메시지가 있습니다.
[warning] /var/www/vhosts/userxyz/wp-content/plugins/bad-plugin/doesnt-execute-correctly.php on line 1
"하아!" 나쁜 소년이 말합니다. 이 사람이 설정 FS_METHOD
하고 다음 direct
과 같은 스크립트를 작성 하면 볼 수 있습니다.
<?php
unlink( '/var/www/vhosts/userxyz/wp-content/plugins/bad-plugin/doesnt-execute-correctly.php' );
?>
한 명의 사용자 만 PHP를 실행하고 있으며이 사용자도 나쁜 소년에 의해 사용되므로 PHP를 통해 파일을 업로드 한 경우 PHP 사용자를 소유자로 첨부하여 시스템의 파일을 변경 / 삭제 / 실행할 수 있습니다.
귀하의 사이트가 해킹되었습니다.
또는 코덱스에 명시된 바와 같이 :
많은 호스팅 시스템에서 웹 서버가 WordPress 파일의 소유자와 다른 사용자로 실행되고 있습니다. 이 경우 웹 서버 사용자의 파일을 쓰는 프로세스는 실제 사용자 계정 대신 웹 서버의 사용자 계정이 소유 한 결과 파일을 갖게됩니다. 이로 인해 여러 사용자가 서로 다른 사이트에 대해 동일한 웹 서버를 공유하는 공유 호스팅 상황에서 보안 문제가 발생할 수 있습니다.