WordPress
설치 보안
수색…
비고
WordPress 웹 사이트는 종종 해킹 당합니다. 이 주제는 기본 설치에서 달성 한 것 이상으로 WordPress 설치의 보안을 향상시키는 기법 및 방법에 대한 내용입니다.
이 주제 외에도 WordPress 설치 보안에 관해 읽을만한 또 다른 곳은 강화 된 WordPress Codex 페이지 입니다.
파일 편집기 사용 안 함
WordPress와 함께 제공되는 파일 편집기는 보안상의 위험이 있습니다. 공격자가 WordPress 웹 사이트에 대한 관리자 액세스 권한을 얻으면 악성 코드를 테마 및 플러그인 파일에 쉽게 삽입 할 수 있습니다. 또한 그들이하는 일을 모르는 고객들에게도 위험합니다. 파일 편집기에서 콜론을 잘못 배치하면 사이트가 손상되어 브라우저에서 액세스 할 수 없게됩니다.
WordPress wp-config.php
파일에서 다음 코드 줄을 추가하여 파일 편집기를 비활성화하십시오.
define( 'DISALLOW_FILE_EDIT', true );
이 줄은 테마의 functions.php
파일에도 추가 할 때 원하는 효과를 갖지만 wp-config.php
에 추가하는 것이 더 좋습니다.
WordPress CLI 를 사용하여 WordPress 를 설치하는 경우 다음 명령을 사용하여 파일 편집이 비활성화 된 wp-config.php
파일을 만들 수 있습니다.
/* declare variables beforehand or substitute strings in */
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU --extra-php <<PHP
define( 'DISALLOW_FILE_EDIT', true );
PHP
이 방법은 스크립트로 WordPress를 설치하는 경우 유용합니다.
wp-config.php 이동
가장 중요한 WordPress 설치 정보는 wp-config.php
파일에 저장됩니다. 해커가이 파일에 액세스하면 웹 사이트를 완벽하게 제어 할 수 있습니다.
기본적으로 wp-config.php
는 WordPress 설치 폴더에 저장됩니다. 이 파일을 훔치기 어렵게 만들려면 웹 액세스 가능 폴더에서 이동할 수 있습니다. 위의 폴더 하나만 이동하면 WordPress가 자동으로 폴더를 찾습니다. wp-config.php
를 다른 위치로 옮기면 WordPress 설치 폴더에 wp-config.php
라는 빈 파일을 만듭니다. 그런 다음 다음을 추가하십시오.
define('ABSPATH', dirname(__FILE__) . '/');
// '../../wp-config.php' defines location two folders above installation folder.
// Substitute with actual location of wp-config.php file as necessary.
require_once(ABSPATH . '../../wp-config.php');
wp-config.php를 넣은 폴더에서 php
실행 가능하게 만들 필요가 있습니다. 가능한 한 적은 폴더에서 PHP를 실행 가능하게 만들어야합니다. 좋은 시스템은 WordPress를 /path/to/wordpress/install/
하고 /path/to/wordpress/config
합니다. 구성 폴더가 웹에 액세스 할 수 없도록하고 폴더 계층의 /path/to/
이상에 다른 중요한 정보를 두지 마십시오. 이 경우 php.ini
다음과 비슷한 줄을 씁니다.
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
이 기술은 논란의 여지가 있으며 일부 사람들은 보안을 강화한다고 생각하지 않습니다. 주제에 대한 광범위한 토론은 이 WordPress StackExchange 질문 에서 읽을 수 있습니다.
WordPress 테이블에 대한 사용자 정의 접두어 설정
서버에 WordPress를 설치하면 설치 스크립트는 모든 WordPress MySQL 테이블 이름 앞에 접두어를 붙입니다. 이 접두사는 기본적으로 'wp_'로 설정됩니다. 워드 프레스 포스트 테이블은 예를 들어 wp_posts
라고합니다. 테이블 접두어를 변경하면 어둡게 보안을 설정할 수 있습니다. 이런 식으로 해커가 SQL 주입 공격을 시도하면 'wp_'를 사용하는 대신 표의 접두어를 추측해야합니다. 이 접두어를 원하는대로 설정할 수 있습니다.
새 WordPress 설치에서 접두어 설정
유명한 5 분 설치를 사용하는 경우 설치 중에 필드에 접두어를 변경하십시오.
WordPress CLI를 통해 설치하는 경우 다음 명령을 사용하십시오.
// set other variables above, or substitute your strings in.
WP_DBPREFIX=foo
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU
기존 설치에서 접두어 변경
접두어를 변경하는 것은 조금 더 어렵습니다. 먼저 FileZilla와 같은 FTP 프로그램을 사용하여 wp-config.php
파일을 편집하십시오. $table_prefix = 'wp_';
항목을 변경하십시오 $table_prefix = 'wp_';
~ $table_prefix = 'foo_';
원하는 접두사를 'foo'로 대체하십시오.
다음으로 데이터베이스를 편집해야합니다. phpMyAdmin에 액세스 할 수 있으면 로그인하고 다음을 수행하십시오.
- WordPress 데이터베이스 선택
- 모든 테이블을 선택하고 드롭 다운에서 테이블 접두사 교체를 선택하십시오.
- "From"에 'wp_'를 입력하십시오. "예"에 접두사 'foo_'를 입력하고 "제출"을 누르십시오.
- 테이블은 이제 다음과 같이 보입니다.
phpMyAdmin을 사용할 수 없다면 다음 MySQL 명령을 사용하십시오 :
RENAME table `wp_comments` TO `foo_comments`
다른 테이블 이름을 '주석'으로 대체하여 각 테이블에 대해 해당 명령을 실행해야합니다.
다음으로 우리는 몇몇 테이블에서 몇개의 엔트리를 변경해야한다. 'foo_options'테이블에서이 쿼리를 실행하십시오.
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
option_name이 'wp_user_roles'인 항목이 나타나야합니다. 해당 항목에서 'option_name'항목을 wp_user_roles
에서 wp_user_roles
로 foo_user_roles
.
그런 다음 'foo_usermeta'테이블을 열고 앞에 'wp_'가있는 모든 항목을 찾으십시오. 'foo_'로 변경하십시오. 변경할 항목 수는 보유한 사용자 수에 따라 다릅니다.
기존 설치에서 접두사를 변경하는 데 필요한 모든 것이 있어야합니다.