수색…


비고

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_rolesfoo_user_roles .

그런 다음 'foo_usermeta'테이블을 열고 앞에 'wp_'가있는 모든 항목을 찾으십시오. 여기에 이미지 설명을 입력하십시오. 'foo_'로 변경하십시오. 변경할 항목 수는 보유한 사용자 수에 따라 다릅니다. 여기에 이미지 설명을 입력하십시오.

기존 설치에서 접두사를 변경하는 데 필요한 모든 것이 있어야합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow