WordPress 데이터베이스를 효율적으로 보호하려면 WordPress에서 데이터베이스를 사용하는 방법, 해커가 자주 악용하는 데이터베이스 취약성 및 이러한 취약성을 피할 수 있는 방법을 알아야 합니다.
WordPress에서 데이터베이스를 사용하는 방법
WordPress는 PHP를 스크립팅 언어(데이터베이스에서 데이터 저장 및 검색)로 사용하고 MySQL은 PHP 마크업 내에서 SQL 쿼리를 사용하여 데이터베이스 관리에 사용됩니다. 예를 들어, WordPress 기반 비즈니스 웹사이트에 로그인하면 실제로 로그인하고 사용자 ID를 추출하여 유효성을 검사하고 올바른 프로필 데이터가 프런트 엔드에 표시되는지 확인하는 것은 SQL입니다.
PHP와 SQL은 함께 작동합니다. 이것은 WordPress가 사용자를 위한 동적 콘텐츠 기반 경험을 만드는 데 도움이 됩니다. 이를 통해 관리자, 편집자 및 구독자와 같은 특정 사용자에게 특정한 콘텐츠를 사용자 지정할 수 있습니다.
플러그인과 테마도 WordPress 데이터베이스를 사용하여 데이터를 저장합니다. PHP 마크업 내에서 SQL을 사용하여 데이터베이스를 쿼리하고 콘텐츠를 동적으로 출력합니다. WP-DB Manager와 같은 다른 플러그인을 사용하여 데이터베이스를 쉽게 관리할 수 있습니다.
관련 문서:시간을 절약하는 15가지 WordPress 구성 요령
워드프레스 데이터베이스를 보호하는 방법
WordPress 데이터베이스는 게시물, 페이지, 댓글, 태그, 사용자, 카테고리, 사용자 정의 필드 및 기타 사이트 옵션과 같은 웹사이트에 대한 모든 정보를 저장하므로 WordPress 웹사이트의 두뇌입니다. 이것은 악의적 인 행위자에게 매력적인 표적이됩니다. 스패머와 해커는 SQL 주입을 위해 자동화된 코드를 실행합니다. 다음은 WordPress 데이터베이스를 보호하는 방법입니다.
관련 문서:25가지 WordPress 보안 모범 사례
1. 관리자 사용자 이름 변경
다른 모든 CMS와 마찬가지로 WordPress에도 기본 관리자 로그인이 있습니다. 기본 관리자 로그인을 변경하지 않으면 악의적인 행위자가 웹사이트와 데이터베이스에 불법적으로 액세스하기가 더 쉬워집니다.
WordPress에서 기본 사용자 이름은 admin
입니다. . 아직 변경하지 않았다면 지금 변경하십시오.
- phpMyAdmin으로 이동합니다.
- 다음 쿼리를 실행합니다. 이렇게 하면 사용자 이름이
admin
에서 변경됩니다.anything.
까지
UPDATE {database_prefix}users SET user_login='anything' WHERE user_login='admin'; - WordPress 다중 사이트의 경우
grant_super_admin()
을 사용할 수 있습니다. 최고 관리자 액세스 및 최고 관리자 권한을 부여하는 기능입니다.
2. 관리자 ID 변경
WordPress에서 기본 관리자 이름은 admin
입니다. 기본 admin 사용자 ID는 1입니다. 많은 SQL 주입 공격이 이를 악용했습니다. 따라서 WordPress 데이터베이스를 보호하기 위해 가장 빨리 변경해야 합니다. 관리자 사용자 ID를 변경하려면
- phpMyAdmin으로 이동
- 다음 쿼리를 실행합니다.
UPDATE wp_users SET ID = 2807 WHERE ID = 1;
UPDATE wp_posts SET post_author = 2807 WHERE post_author = 1;
UPDATE wp_comments SET user_id = 2807 WHERE user_id = 1;
UPDATE wp_usermeta SET user_id = 2807 WHERE user_id = 1;
ALTER TABLE wp_users AUTO_INCREMENT = 2808
팁: 변경하기 전에 백업을 생성하는 것이 좋습니다. 그리고 각 변경 후 웹사이트의 작동을 확인하여 변경이 다른 사이트 기능을 방해하지 않는지 확인하십시오.
3. WordPress multisite의 경우 네트워크의 각 사이트에 대해 몇 줄을 복제해야 합니다. 이렇게:
UPDATE wp_2_posts SET post_author = 5487 WHERE post_author = 1;
UPDATE wp_2_comments SET user_id = 5487 WHERE user_id = 1;
PHP와 $wpdb.
을 사용하여 루프에서 쿼리를 실행할 수도 있습니다.
3. 데이터베이스 접두사 변경
기본 WordPress 데이터베이스 접두사는 wp_
입니다. . 안전한 WordPress 데이터베이스를 위해 WordPress 설치 프로세스 자체에서 기본 접두사를 변경하는 것이 좋습니다.
아직 하지 않았다면 지금 하십시오. 다음 단계를 따르십시오:
- FTP 클라이언트를 통해 웹사이트에 액세스
- 구성 파일 wp_config.php 로 이동합니다. 루트 디렉토리에서
- wp_으로 줄 찾기 접두사를 지정하고 변경합니다.
$table_prefix = 'wp_ga2807_';
- 모든 기본 WordPress 데이터베이스 테이블의 이름을 바꿉니다.
RENAME TABLE wp_comments TO wp_ga2807_comments;
RENAME TABLE wp_commentmeta TO wp_ga2807_commentmeta;
RENAME TABLE wp_links TO wp_ga2807_links;
RENAME TABLE wp_options TO wp_ga2807_options;
RENAME TABLE wp_postmeta TO wp_ga2807_postmeta;
RENAME TABLE wp_posts TO wp_ga2807_posts;
RENAME TABLE wp_terms TO wp_ga2807_terms;
RENAME TABLE wp_termmeta TO wp_ga2807_termmeta;
RENAME TABLE wp_term_relationships TO wp_ga2807_term_relationships;
RENAME TABLE wp_term_taxonomy TO wp_ga2807_term_taxonomy;
RENAME TABLE wp_usermeta TO wp_ga2807_usermeta;
RENAME TABLE wp_users TO wp_ga2807_users;
wp_
의 모든 인스턴스 교체wp_ga2807_usermeta
및wp_ga2807_options
(이전wp_usermeta
및wp_options
표).
UPDATE wp_ga2807_options SET option_name = REPLACE(option_name, 'wp_', 'wp_ga2807_') WHERE option_name LIKE 'wp_%';
UPDATE wp_ga2807_usermeta SET meta_key = REPLACE(meta_key, 'wp_', 'wp_ga2807_') WHERE meta_key LIKE 'wp_%';
- 플러그인은 데이터베이스에 자체 테이블을 생성합니다. 이러한 테이블의 이름도 바꾸는 것이 중요합니다. 예를 들어 WooCommerce는 널리 사용되는 WordPress 플러그인입니다. WooCommerce에서 테이블의 이름을 바꾸려면 다음 쿼리를 실행합니다.
RENAME TABLE wp_woocommerce_api_keys TO wp_ga2807_woocommerce_api_keys;
RENAME TABLE wp_woocommerce_attribute_taxonomies TO wp_ga2807_woocommerce_attribute_taxonomies;
RENAME TABLE wp_woocommerce_downloadable_product_permissions TO wp_ga2807_woocommerce_downloadable_product_permissions;
RENAME TABLE wp_woocommerce_order_itemmeta TO wp_ga2807_woocommerce_order_itemmeta;
RENAME TABLE wp_woocommerce_order_items TO wp_ga2807_woocommerce_order_items;
RENAME TABLE wp_woocommerce_payment_tokenmeta TO wp_ga2807_woocommerce_payment_tokenmeta;
RENAME TABLE wp_woocommerce_payment_tokens TO wp_ga2807_woocommerce_payment_tokens;
RENAME TABLE wp_woocommerce_sessions TO wp_ga2807_woocommerce_sessions;
참고:플러그인을 사용하여 데이터베이스 접두사를 변경할 수도 있습니다. 'Change Table Prefix'는 이를 위한 편리한 플러그인입니다.
4. 엄격한 데이터베이스 사용자 권한
엄격한 사용자 권한은 WordPress 데이터베이스를 더 안전하게 보호합니다. wp-config.php에 지정된 MySQL 사용자 파일에 엄격한 권한이 있어야 합니다. 설치하는 동안 데이터베이스 사용자는 필요한 테이블과 개체를 설정할 수 있는 모든 권한이 있지만 임시 조치여야 합니다. 설치 후 MySQL 사용자는 DATA READ 및 DATA WRITE 권한만 있으면 됩니다.
5. 백업 생성
웹사이트나 데이터베이스를 변경하기 전에 백업을 만드십시오. 반복합니다. 백업을 만듭니다! 정기적인 백업을 생성하면 감염 시 매우 유용할 수 있습니다. 백업을 복원하고 감염된 파일을 제거하기만 하면 됩니다.
그러나 백업을 복원하더라도 공격자가 악용한 취약점은 해결되지 않은 상태로 남아 있습니다. Astra 취약성 평가 및 침투 테스트에 등록하여 웹사이트에 숨겨진 모든 백도어 및 보안 취약성을 발견할 수 있습니다.
6. 사용자 정의 테이블 삭제
사이트에서 웹사이트 확장을 제거한 후 데이터베이스에서 사용자 정의 테이블을 삭제하는 것이 좋습니다. 그렇지 않으면 평생 동안 데이터베이스에서 사용하지 않는 테이블 더미를 수집하게 됩니다. 일부 플러그인에는 제거할 때 웹사이트와 데이터베이스에서 모든 데이터를 자동 삭제하는 옵션이 있습니다.
참고:사용자 정의 테이블을 삭제하면 되돌릴 수 없으므로 다시 설치하지 않을 플러그인의 테이블만 삭제하세요.
관련 기사:누구나 하는 7가지 일반적인 WordPress 실수
결론
모든 올바른 조치를 취하더라도 100% 보안을 보장할 수는 없습니다. 해커들은 웹사이트와 데이터베이스에 접근할 수 있는 새로운 방법을 찾고 있습니다. 무엇보다 방화벽을 설치하는 것이 다가오는 위협 요청으로부터 WordPress를 저장할 수 있는 가장 좋은 방법입니다. 웹사이트의 보안을 관리하는 Astra의 방화벽을 사용하면 비즈니스 성장에 집중할 수 있습니다.
이 문서가 도움이 되었나요? Facebook, Twitter, LinkedIn에서 친구들과 공유하십시오.