[( ! defined ( " ABSPATH " ) ]는 무엇을 의미합니까?
저는 현재 WordPress Theme를 '직장에서 배우기' 위한 수단으로 처음부터 만들고 있습니다.저는 백엔드 작업에 대해 중간 정도의 경험이 있지만, 이전에는 PageBuilder에 크게 의존했습니다.이제 로드 속도 등을 높이기 위한 수단으로 페이지빌더 없이 테마를 만들고 싶습니다.
현재 웹 사이트 파일의 보안을 검토 중인데 다음과 같은 용어가 있습니다.
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
?>
이로 인해 웹 파일에 직접 액세스할 수 없게 되는 것으로 알고 있습니다.나는 이것이 무엇을 의미하는지 완전히 확신하지 못한다.예를 들어 FTP, Server 및 WordPress Dashboard를 통해 파일에 액세스할 수 있습니다.이로 인해 차단되는 다른 직접 액세스가 있습니까?WordPress Plugins 등을 통한 접근을 금지하고 있습니까?
이 점을 고려하여 상기 코드를 테마 내의 모든 파일에 표준으로 배치하는 것이 맞습니까?예외는 없나요?
이에 대해 더 이상의 설명을 해주시면 감사하겠습니다.
따라서 공용 사용자가 URL을 통해 .php 파일에 직접 액세스할 수 없습니다. 파일에 일부 I/O 작업이 포함되어 있으면 공격자가 트리거하여 예기치 않은 동작을 일으킬 수 있습니다.
따라서 스니펫을 사용하면 파일에서 직접 액세스할 수 없고 WordPress 환경 내에서만 테마 파일이 실행됩니다.
사용방법:
- PHP 파일(테마 및 플러그인)의 맨 위에 배치할 수 있습니다.
- 이것은 wp-config의 맨 위에 배치할 수 있습니다.php
도움이 되었으면 좋겠다
ABSPATH
WordPress에 의해 정의된 PHP 상수입니다.wp-config.php
:
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
위의 코멘트 블록에서 볼 수 있듯이 WordPress는 이러한 코드 행을 수정하는 것을 권장하지 않습니다.아마 많은 플러그인과 테마가 에 의존하고 있기 때문일 것입니다.ABSPATH
PHP 파일이 WordPress 환경에서 실행되고 있는지 확인합니다.
위쪽에 있는 이 스니펫을 사용하면wp-config.php
이 경우 파일 실행이 종료됩니다.wp-config.php
,왜냐면ABSPATH
아직 정의되지 않았습니다.그 외의 파일에는wp-config.php
는 실패합니다(즉, 웹 사이트가 파손됩니다).
if ( ! defined( 'MY_CONSTANT' ) ) { exit; }
는 PHP의 플러그인 및 테마 파일에 널리 사용되는 스니펫입니다.이론적으로, 이것은 당신이 당신의 상수를 맨 아래에 추가할 수 있다는 것을 의미합니다.wp-config.php
결과를 수
의 ★★★★★★★★★★★★★★★★★.wp-config.php
:
if ( !defined('MY_CONSTANT') )
define('MY_CONSTANT', 'fool');
테마 또는 플러그인 파일:
<?php
if ( ! defined( 'MY_CONSTANT' ) ) {
exit; // Exit if accessed directly
}
상세 정보
PHP에서 상수 정의: http://php.net/manual/en/language.constants.syntax.php
PHP 매직 상수: http://php.net/manual/en/language.constants.predefined.php
언급URL : https://stackoverflow.com/questions/43212340/what-is-meant-by-if-defined-abspath
'programing' 카테고리의 다른 글
react-redux-v6:withRef가 삭제됩니다.래핑된 인스턴스에 액세스하려면 연결된 구성 요소의 참조를 사용하십시오. (0) | 2023.03.25 |
---|---|
React.js에서 하위 렌더링 트리거 (0) | 2023.03.25 |
WordPress 페이지 내에서 다른 편집 가능한 섹션을 작성하려면 어떻게 해야 합니까? (0) | 2023.03.25 |
잭슨 JSON 필드 맵핑 대문자는? (0) | 2023.03.25 |
특정 요청에 대해 ajaxStart() 및 ajaxStop()을 사용하지 않도록 설정합니다. (0) | 2023.03.20 |