답변:
if ( ! defined( 'WPINC' ) ) die;
및 if ( ! defined( 'ABSPATH' ) ) exit;
플러그인 파일에 대한 직접 액세스를 방지하여 추가 보안 계층을 추가 할 수 있습니다. ABSPATH
핵심에서 WordPress에 의해 정의 된 PHP 상수입니다.
플러그인 파일이 WordPress 외부에서 액세스되면 상수 ABSPATH
또는 WPINC
정의되지 않으므로 플러그인 코드를 종료하여 코드에 대한 무단 액세스를 방지합니다.
ABSPATH
WPINC
워드 프레스 코어에서 다음 과 같이 정의됩니다.
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );
둘 다 같은 목적으로 사용됩니다.
WPINC와 ABSPATH의 차이점은 무엇입니까?
당신은 자신을 확인할 수 있습니다. 그냥 보고wp-load.php
GitHub의에서 워드 프레스 거울에.
한 눈에보기 만해도 현재 선택된 답변 ABSPATH
이 정의 된 방식에 대해 더 이상 정확하지 않음을 표시합니다 . 그리고 GitHub에서 다른 태그를 비교하면 ABSPATH
시간이 지남에 따라 정의가 실제로 변경되는 것을 볼 수 있습니다.
어느 것이 올바른 방법입니까?
이것들이 보안에 사용된다면, 나는 갈 것입니다 ABSPATH
. 이론적 근거의 존재 ABSPATH
만을 WP 부트 스트 래퍼에 처음으로 정의되지는 WPINC
결과적으로 미래의 회귀를 경험할 가능성이 더 높습니다, 동일한 파일에 조건에 따라 정의된다.
또한 명시 적으로 요청하지는 않았지만 die
및 을 모두 사용하여 예제를 제공했습니다 exit
. devdocs.io
공식 API 문서를 사용하는에 따르면에 die
해당 exit
하므로 둘 중 하나를 선택할 수 있으며 차이가 없습니다.
둘 다 인수 die
를 exit
허용하므로 인수를 사용하여 암호화 된 버전 태그 또는 연락처 정보와 같은 유용한 정보를 이상 종료시 출력 0
하거나 -1
추가 처리 등의 종료 코드를 전달하는 것을 고려할 수 있습니다 .
또한 주목할 가치가 wp_die
있습니다. PHP 내장 기능과 혼동하지 말고 일반 텍스트 외에 HTML 출력에 사용하도록 칭찬하며 현재 WordPress 코어 전체에서 자유롭게 사용됩니다. 알아 보다 약wp_die
WordPress.org에.
if ( ! defined( 'ABSPATH' ) ) exit;
어쩌면,이 조각의 범위가 더 때문 워드 프레스는 더 나은 'WPINC'는로드 보장 것을 고려 ...하지만 wordpressfull 'WP'에 응시가.