프로세스로서의 WordPress 보안
게시 됨: 2022-03-10( 이 글은 Sucuri 의 후원을 받아 작성되었습니다 .) 워드프레스 보안은 평판이 좋지 않습니다. Alexa가 40,000개 이상의 WordPress 사이트에 대해 수행한 연구에 따르면 모든 WordPress 사이트의 70% 이상이 일종의 취약점을 가지고 있습니다. WordPress 테마 또는 플러그인을 개발하거나 웹 사이트에 WordPress를 사용하는 경우 그 숫자는 당신을 놀라게 할 것입니다.
70%에 속하지 않도록 할 수 있는 일은 많지만 플러그인을 설치하거나 문자열을 이스케이프하는 것보다 더 많은 작업이 필요합니다. 이 기사의 많은 조언은 WordPress 보안에 대한 Sucuri의 가이드와 수년간의 개인적인 경험에서 비롯됩니다.
WordPress는 안전하지 않습니까?
WordPress는 콘텐츠 관리 시스템 중 가장 큰 시장 점유율을 가지고 있으며 웹에서 가장 인기 있는 천만 개 사이트 중 30%의 시장 점유율을 가지고 있습니다. 그런 종류의 성공은 해킹의 큰 표적이 됩니다. WordPress는 다른 콘텐츠 관리 시스템보다 덜 안전한 것이 아니라 더 성공적입니다.
WordPress 코어의 취약점은 모든 WordPress 해킹의 10% 미만을 담당합니다. 대부분은 오래된 WordPress 설치에서 발생합니다. WordPress 코어의 최신 버전(제로데이 익스플로잇이라고도 함)의 실제 보안 허점에서 발생하는 해킹의 양은 전체 해킹의 아주 작은 비율을 차지합니다.
나머지 감염된 사이트는 플러그인, 테마, 호스팅 및 사용자에 의해 발생했습니다. 그리고 WordPress 웹 사이트 개발자는 이 모든 것을 제어할 수 있습니다. 이것이 당신에게 큰 번거 로움으로 느껴진다면 Sucuri의 에이전시 플랜을 추천 할 수 있습니다. 그렇지 않으면 WordPress 보안을 직접 처리하는 방법을 알아 보겠습니다!
누가 당신을 공격하고 왜?
먼저 신화를 깨자. 작은 WordPress 웹사이트는 여전히 해커에게 매력적인 표적입니다. 개인적인 공격은 매우 드뭅니다. 대부분의 해킹된 WordPress 웹사이트는 봇이나 봇넷에 의해 자동으로 손상됩니다.
봇은 해킹할 웹사이트를 지속적으로 검색하는 컴퓨터 프로그램입니다. 그들은 당신이 누구인지 상관하지 않습니다. 그들은 단지 당신의 방어에서 약점을 찾습니다. 봇넷은 많은 봇의 컴퓨팅 성능을 결합하여 더 큰 작업을 처리합니다.
해커는 주로 서버의 컴퓨팅 성능을 사용하고 다른 목표나 대상을 느슨하게 할 수 있도록 서버에 침입하는 방법을 찾고 있습니다. 해커는 다음과 같은 이유로 서버를 원합니다.
스팸 발송
스팸은 전체 이메일의 약 60%를 차지하며 어딘가에서 발송되어야 합니다. 많은 해커가 잘못된 플러그인이나 WordPress 코어의 고대 버전을 통해 서버에 침입하여 서버를 스팸 시스템으로 만들려고 합니다.
다른 웹사이트 공격
분산 서비스 거부 공격은 많은 컴퓨터를 사용하여 웹사이트를 따라잡을 수 없을 정도로 많은 트래픽을 발생시킵니다. 이러한 공격은 특히 제대로 수행된 경우 완화하기가 매우 어렵습니다. 서버에 침입한 해커는 서버 풀에 서버를 추가하여 웹사이트를 공격할 수 있습니다.
자원 훔치기
채굴 암호화폐는 현재 매우 인기가 있지만 많은 컴퓨팅 파워가 필요합니다. 서버 팜에 많은 돈을 쓰고 싶지 않은 해커는 보호되지 않은 WordPress 웹 사이트에 침입하여 서버 또는 웹 사이트 방문자에 대한 액세스 권한을 얻고 컴퓨팅 성능을 훔칩니다.
급증하는 SEO 점수
WordPress에 대해 특히 인기 있는 해킹은 데이터베이스에 액세스하고 각 게시물 아래에 많은 (숨겨진) 텍스트를 추가하여 다른 웹사이트로 연결하는 것입니다. 구글이 이러한 행동에 대해 더욱 경계하고 있고 블랙리스트에 등록하는 경우가 증가하고 있지만 이는 SEO 점수를 올리는 정말 빠른 방법입니다.
### 데이터 도용
데이터는 특히 사용자 프로필 및 전자 상거래 정보와 연결될 때 중요합니다. 이 데이터를 가져와 판매하면 공격자가 상당한 이익을 얻을 수 있습니다.
보안이 중요한 이유
범죄자에게 만족을 주지 않는 것 외에도 웹사이트가 기본적으로 안전해야 하는 데에는 여러 가지 이유가 있습니다. 많은 WordPress 해킹을 직접 청소하고 처리한 결과 편리한 시간에 발생하지 않는다고 확실히 말할 수 있습니다. 청소에는 몇 시간이 걸릴 수 있으며 귀하 또는 귀하의 고객에게 비용이 듭니다.
해킹된 WordPress 웹사이트를 다시 실행하려면 모든 타사 코드(WordPress 코어 포함)를 제거하고 교체해야 합니다. 자신의 코드를 한 줄씩 살펴보고 서버의 다른 모든 폴더가 여전히 깨끗한지 확인합니다. 승인되지 않은 사용자가 액세스 권한을 얻었는지 확인합니다. WordPress, 서버 및 데이터베이스의 모든 비밀번호를 교체하십시오.
많은 서비스가 WordPress 웹 사이트를 정리할 수 있지만 장기적으로 예방이 훨씬 좋습니다.
정리 비용 외에도 해킹으로 인해 누락된 판매 또는 리드에 많은 비용이 들 수 있습니다. 해킹은 검색 순위를 낮추어 방문자와 전환을 줄입니다.
금전적 비용보다 해킹을 당하면 평판이 나빠집니다. 방문자는 귀하를 신뢰하기 때문에 귀하의 웹사이트를 방문합니다. 해킹을 당하면 평판이 손상되고 복구하는 데 오랜 시간이 걸립니다.
특히 GDPR 법안이 2018년 여름에 발효되는 EU에 고객이 있는 경우 법적 문제가 발생할 가능성도 있습니다. 이 새 법안에는 제대로 처리되지 않은 데이터 침해에 대한 막대한 벌금이 포함되어 있습니다.
돈, 평판 및 법적 문제: 보안이 취약하면 많은 비용이 발생할 수 있습니다. 웹사이트, 코드 및 팀을 보안에 대한 사고방식으로 설정하는 데 시간을 투자하면 확실히 효과를 볼 수 있습니다.
이 모든 추악함을 예방할 수 있는 방법을 알아보겠습니다.
CIA 트라이어드
CIA 트라이어드는 모든 디지털 보안 프로젝트의 기본 프레임워크입니다. 기밀성, 무결성 및 가용성을 나타냅니다. CIA는 올바른 당사자에게 정보 액세스를 제한하고 해당 정보가 신뢰할 수 있고 정확한지 확인하며 해당 정보에 대한 안정적인 액세스를 보장하는 일련의 규칙입니다.
WordPress의 경우 CIA 프레임워크는 다음과 같이 요약됩니다.
기밀성
로그인한 사용자에게 올바른 역할이 할당되어 있고 해당 기능이 확인되고 있는지 확인하십시오. 사용자에게 필요한 최소한의 액세스 권한만 부여하고 관리자 정보가 잘못된 사람에게 누출되지 않도록 합니다. WordPress의 관리 영역을 강화하고 사용자 이름과 자격 증명에 주의하여 그렇게 할 수 있습니다.
진실성
웹사이트에 정확한 정보를 표시하고 웹사이트에서 사용자 상호 작용이 올바르게 발생하는지 확인하십시오.
프런트 엔드와 백 엔드 모두에서 요청을 수락할 때 항상 의도가 실제 작업과 일치하는지 확인하세요. 데이터가 게시되면 항상 삭제 및 이스케이프를 사용하여 악성 콘텐츠에 대한 코드의 데이터를 필터링하십시오. Akismet과 같은 스팸 방지 서비스를 사용하여 스팸이 제거되었는지 확인하십시오.
유효성
WordPress, 플러그인 및 테마가 최신 상태이고 신뢰할 수 있는(관리되는 것이 좋은) WordPress 호스트에서 호스팅되는지 확인하십시오. 일일 자동 백업은 웹사이트를 대중이 계속 사용할 수 있도록 하는 데도 도움이 됩니다.
세 가지 요소 모두 지원을 위해 서로 기대고 있습니다. 사용자의 기밀 암호가 쉽게 도용되거나 추측되는 경우 코드 무결성이 자체적으로 작동하지 않습니다. 견고하고 안전한 플랫폼에는 모든 측면이 중요합니다.
보안은 힘든 작업입니다. 코드에서 수행할 수 있는 작업 외에도 이 프레임워크에는 엄청난 인적 요소가 있습니다. 보안은 지속적인 프로세스입니다. 단일 플러그인으로 해결할 수 없습니다.
1부: 정직 - 아무것도 믿지 않음
사용자 작업의 의도와 처리 중인 데이터의 무결성을 확인합니다. 내면의 히피족을 문 밖으로 내던져라. 온라인에서 신뢰할 수 있는 것은 아무것도 없으므로 악의적인 의도가 있는지 모든 작업을 다시 확인하십시오.
데이터 유효성 검사 및 삭제
워드프레스는 데이터 처리에 탁월합니다. 모든 상호 작용이 검증되고 모든 데이터 비트가 삭제되는지 확인하지만 이는 워드프레스 코어에만 해당됩니다. 자신만의 플러그인이나 테마를 구축하거나 타사 코드를 확인하는 경우에도 이 작업을 수행하는 방법을 아는 것이 중요합니다.
//Cast our variable to a string, and sanitize it. update_post_meta( $post->ID, 'some-meta', sanitize_text_field( (string)$_POST['some-meta'] ) ); //Make sure our variable is an absolute integer. update_post_meta( $post->ID, 'some-int', absint( $_POST['int'] ) );
이 예에서는 update_post_meta를 사용하여 WordPress 게시물에 두 개의 데이터를 추가했습니다. 첫 번째는 문자열입니다. 그래서 우리는 그것을 PHP에서 문자열로 캐스팅하고 WordPress의 많은 sanitize_text_field
기능 중 하나인 Sanitize_text_field를 사용하여 원하지 않는 문자와 태그를 제거합니다.
또한 해당 게시물에 정수를 추가하고 절대(음이 아닌) 정수인지 확인하기 위해 absint를 사용했습니다.
update_post_meta
와 같은 핵심 WordPress 기능을 사용하는 것이 WordPress 데이터베이스를 직접 사용하는 것보다 더 나은 아이디어입니다. 이것은 WordPress가 소위 SQL 주입을 위해 데이터베이스에 저장해야 하는 모든 것을 확인하기 때문입니다. SQL 주입 공격은 웹사이트의 양식을 통해 악성 SQL 코드를 실행합니다. 이 코드는 예를 들어 모든 것을 파괴하거나 사용자 데이터를 유출하거나 거짓 관리자 계정을 생성하기 위해 데이터베이스를 조작합니다.
WordPress에서 사용자 지정 테이블을 사용하거나 복잡한 쿼리를 수행해야 하는 경우 기본 WPDB 클래스를 사용하고 모든 쿼리에 prepare
기능을 사용하여 SQL 주입 공격을 방지하세요.
$tableName = $wpdb->prefix . “my_table”; $sql = $wpdb->prepare( “SELECT * FROM %s”, $tableName ); $results = $wpdb->get_results( $sql );
$wpdb->prepare는 모든 변수를 검토하여 SQL 주입 공격의 기회가 없는지 확인합니다.
탈출
출력을 탈출하는 것은 입력을 살균하는 것만큼 중요합니다. 데이터를 저장하기 전에 검증하는 것이 중요하지만 여전히 안전하다고 100% 확신할 수는 없습니다. 아무것도 믿지 마세요. WordPress는 많은 필터를 사용하여 플러그인과 테마가 즉석에서 데이터를 변경할 수 있도록 하므로 데이터가 다른 플러그인을 통해서도 구문 분석될 가능성이 높습니다. 테마나 플러그인에 데이터를 추가하기 전에 데이터를 이스케이프하는 것은 현명한 일입니다.
이스케이프는 주로 XSS(교차 사이트 스크립팅) 공격을 방지하기 위한 것입니다. XSS 공격은 웹사이트의 프런트 엔드에 악성 코드를 주입합니다. 데이터 이스케이프의 추가 보너스는 마크업이 이후에도 유효한지 확인할 수 있다는 것입니다.
WordPress에는 많은 이스케이프 기능이 있습니다. 다음은 간단한 예입니다.
<a href=“<?php echo esc_url( $url );?>” title=“<?php echo esc_attr( $title );?>”><?php echo esc_html( $title );?></a>
가능한 한 늦게 탈출하십시오. 이렇게 하면 데이터에 대해 최종 결정권을 갖게 됩니다.
보안 요청
SSL이 활성화되어 있고 적절한 호스트가 있는 경우 WordPress 관리자 요청은 이미 매우 안전하지만 일부 취약성은 여전히 존재합니다. 사용자의 의도를 확인하고 들어오는 요청이 실제 로그인한 사용자가 수행한 것인지 확인해야 합니다.
WordPress는 nonce로 의도를 확인합니다.. nonce(또는 "한 번만 사용되는 숫자")는 실제로 WordPress에서 이 API에 대한 정확한 설명이 아닙니다. 숫자만 사용하는 것이 아니라 모든 최신 웹 프레임워크에서 볼 수 있는 CSRF(교차 사이트 요청 위조) 토큰과 훨씬 비슷합니다. 이러한 토큰은 해커가 요청을 반복할 수 없도록 합니다. 단순한 nonce 이상이지만 WordPress는 이전 버전과의 호환성을 좋아하므로 이름이 붙어 있습니다.
Nonce는 사용자가 만드는 모든 취약한 요청과 함께 전송됩니다. URL 및 양식에 첨부되며 요청을 수행하기 전에 수신 측에서 항상 확인해야 합니다. 양식이나 URL에 nonce를 추가할 수 있습니다. 다음은 양식에 사용된 예입니다.
<form method= “post”> <!-- Add a nonce field: --> <?php wp_nonce_field( 'post_custom_form' );?> <!-- other fields: → ... </form>
이 경우에는 다음과 같은 두 개의 숨겨진 필드를 생성하는 간단한 도우미 함수 wp_nonce_field()
를 사용하고 있습니다.
<input type="hidden" name="_wpnonce" value="e558d2674e" /> <input type="hidden" name="_wp_http_referer" value="/wp-admin/post.php?post=2&action=edit" />
첫 번째 필드는 함수에 전달한 'post_custom_form'
문자열과 함께 생성된 코드를 사용하여 의도를 확인합니다. 두 번째 필드는 요청이 WordPress 설치 내에서 수행되었는지 여부를 확인하는 참조자를 추가합니다.
양식이나 URL의 다른 쪽 끝에서 작업을 처리하기 전에 wp_verify_nonce
를 사용하여 nonce와 유효성을 확인합니다.
if( wp_verify_nonce( $_REQUEST['_wpnonce'], 'post_custom_form' ) == false ){ wp_die( “Nonce isn\'t valid” ); }
여기서는 액션 이름으로 nonce를 확인하고 일치하지 않으면 양식 처리를 중지합니다.
제3자 코드
타사 플러그인 및 테마는 해킹의 온상입니다. 또한 웹사이트의 보안을 보장할 때 가장 다루기 힘든 너트이기도 합니다.
대부분의 WordPress 해킹은 플러그인, 테마 및 WordPress의 오래된 복사본으로 인해 발생합니다 . 100% 안전한 소프트웨어는 없지만 많은 플러그인과 테마가 개발자에 의해 한동안 업데이트되지 않았거나 처음부터 안전하지 않았습니다.
코드가 적으면 해킹할 일도 줄어듭니다. 따라서 다른 플러그인을 설치하기 전에 정말로 필요한지 자문해 보십시오. 이 문제를 해결할 다른 방법이 있습니까?
플러그인이나 테마가 필요하다고 확신한다면 신중하게 판단하세요. WordPress의 플러그인 디렉토리를 탐색할 때 등급, "마지막 업데이트" 날짜 및 필요한 PHP 버전을 확인하십시오. 원하는 것을 찾았고 모든 것이 제대로 작동하는 것 같으면 Sucuri 또는 WordFence와 같은 신뢰할 수 있는 보안 블로그에서 이에 대한 언급을 검색하십시오.
또 다른 옵션은 코드를 스캔하고 적절한 nonce, 위생 및 이스케이프가 포함되어 있는지 확인하는 것입니다. 이것은 일반적으로 잘 작성되고 안전한 코드의 표시입니다. PHP를 알거나 완전한 코드 리뷰를 할 필요가 없습니다. WordPress 보안 기능의 적절한 사용을 확인하는 간단하고 빠른 방법은 플러그인 코드에서 다음 문자열을 검색하는 것입니다.
-
esc_attr
-
esc_html
-
wp_nonce_field
-
wp_nonce_url
-
sanitize_text_field
-
$wpdb->prepare
플러그인은 이러한 문자열을 모두 포함하지 않아도 여전히 안전할 수 있지만 이러한 문자열이 없거나 적은 수라면 이는 위험 신호입니다. 취약점을 발견하면 제작자와 비공개로 공유하고 수정할 시간을 주세요.
wpvulndb와 같은 이니셔티브를 통해 WordPress 플러그인 공간의 취약성을 추적하는 것이 점점 더 쉬워지고 있습니다.
참고: 일부 테마는 코드와 함께 플러그인 버전을 번들로 제공합니다. 이것은 WordPress가 즉시 사용 가능한 종속성 관리를 제대로 하지 못하는 증상이지만, 테마가 매우 잘못 작성되었다는 신호이기도 합니다. 이러한 테마에는 업데이트할 수 없는 코드 기반이 포함되어 있으므로 항상 피하세요.
테마와 플러그인에는 한 명의 개발자가 작성한 코드가 거의 포함되지 않습니다. Composer와 NPM 은 다른 라이브러리에 훨씬 쉽게 의존할 수 있게 하여 인기 있는 공격 벡터가 되었습니다. 간단한 WordPress 테마 또는 플러그인을 다운로드하는 경우 이는 실제로 문제가 되지 않지만 Composer 또는 NPM을 사용하는 도구로 작업하는 경우 종속성을 확인하는 것이 문제가 되지 않습니다. SensioLabs의 무료 CLI(명령줄 인터페이스) 도구를 사용하여 Composer 종속성을 확인할 수 있습니다. Snyk와 같은 서비스(무료로 사용할 수 있지만 프리미엄 옵션도 있음)를 사용하면 프로젝트의 모든 종속성을 확인할 수 있습니다.
파트 2: 가용성: 단순하게 유지
주요 목표는 중단 없이 웹사이트를 온라인 상태로 유지하는 것입니다. 최고 수준의 보안에도 불구하고 여전히 문제가 발생할 수 있습니다. 그런 일이 발생하면 훌륭한 백업이 큰 골치거리를 덜어줄 것입니다.
업데이트
오픈 소스는 업데이트 없이 존재할 수 없습니다. WordPress 웹사이트에 대한 대부분의 공격은 핵심 소프트웨어나 플러그인의 오래된 버전에서 발생합니다. WordPress의 핵심에 대한 보안 업데이트는 이제 자동으로 처리되지만(이를 비활성화하지 않는 한 괴물이 됩니다!) 플러그인의 보안 업데이트는 이야기가 다릅니다.
업데이트는 일반적으로 인기 있고 신뢰할 수 있는 플러그인으로 안전하지만 모든 플러그인은 웹사이트에 게시되기 전에 테스트해야 합니다. WP CLI와 같은 도구를 사용하면 모든 것을 훨씬 쉽게 업데이트할 수 있습니다. WordPress의 수석 개발자 Mark Jaquith는 가능한 오류를 걸러낼 수 있도록 모든 플러그인을 자동으로 점진적으로 업데이트하는 것에 대한 훌륭한 블로그 게시물을 올렸습니다.
사용자, 역할 및 기능
CIA 트라이어드의 "가용성"은 올바른 손에서 정보를 얻는 것과 관련이 있습니다. 이에 대한 우리의 주요 우선 순위는 백엔드 사용자의 기능을 제한하는 것입니다. 모든 사람에게 관리자 계정을 제공하지 마십시오.
WordPress의 관리자 계정은 비정상적으로 강력합니다. 바닐라 WordPress에는 WordPress 관리자 계정 내에서 전체 코드 기반을 변경하는 옵션도 있습니다. (이것이 처음이고 비활성화하지 않은 경우 비활성화하십시오.)
WordPress의 역할 및 기능 시스템은 강력하며 코드에서 변경하기가 매우 쉽습니다. WordPress로 작업할 때 많은 새 역할을 만듭니다. 이것의 주요 이점은 다양한 사용자가 액세스할 수 있는 시스템 부분을 완전히 제어할 수 있다는 것입니다. 그러나 또 다른 큰 이점은 타사 코드가 WordPress 코어의 표준 기능을 변경하는 것을 방지한다는 것입니다.
이메일
WordPress는 일반적으로 켜져 있는 서버를 통해 이메일을 처리하지만 이로 인해 모든 이메일이 실행 중인 서버에 완전히 종속됩니다. SMTP 서비스를 사용하여 이메일이 가로채어 스팸으로 간주되는 것을 방지하세요. 모든 메일이 안전한 SMTP 연결을 통해 전송되도록 많은 플러그인 옵션을 사용할 수 있습니다.
그러나 SPF(Sender Policy Framework) 레코드를 추가하려면 도메인 이름의 DNS 설정에 액세스해야 합니다. 모든 좋은 SMTP 서비스는 추가해야 하는 정확한 레코드를 제공합니다. SPF 레코드는 SMTP 서비스가 해당 이름으로 이메일을 보낼 수 있도록 도메인에 의해 인증되었음을 확인합니다.
모니터링
웹사이트를 온라인으로 모니터링하는 것은 완전히 자동화될 수 있는 연중무휴 작업입니다. WordPress의 경우 가동 시간과 파일 무결성에 관심이 있습니다.
가동 시간 모니터링은 일반적으로 좋은 호스트가 해줄 수 있는 일입니다. Uptime Robot과 같은 도구는 보안을 더욱 강화합니다. 처음 50개 웹사이트는 완전 무료입니다.
파일 무결성 과 관련하여 해커가 서버에 액세스하면 코드를 변경할 수 있습니다.
이 경우 플러그인이 문제에 대한 답입니다. Sucuri에는 훌륭한 감사 플러그인이 있습니다. 알려진 악성 코드의 방대한 데이터베이스에 대해 설치의 모든 파일을 검사합니다. 또한 WordPress 코어가 여전히 100% WordPress 코어인지 확인하고 위반 사항이 있는 경우 경고를 제공하므로 가능한 한 빨리 수정할 수 있습니다.
백업
모든 보안 프로세스의 궁극적인 안전 장치는 자동 백업입니다. 대부분의 좋은 호스트가 이 작업을 대신 수행하지만 호스트가 백업을 제공하지 않는 경우 다른 좋은 옵션이 있습니다. Automattic은 VaultPress라는 이름을 만들고 BackupBuddy와 같은 도구를 Dropbox 계정이나 Amazon S3 버킷에 백업합니다.
워드프레스 백업 공간에 있는 대부분의 안정적인 서비스는 프리미엄 서비스 또는 프리미엄 플러그인입니다. 데이터를 완전히 제어해야 하는지 여부에 따라 서비스 대신 클라우드 호스트와 함께 제공되는 플러그인을 선호할 수 있습니다. 어느 쪽이든 모든 페니의 가치가 있습니다.
호스팅
WordPress는 서버에서 실행되는 유일한 소프트웨어가 아닙니다. 형편없는 호스팅을 사용하는 경우 많은 공격 벡터가 열려 있습니다. 사실, 잘못된 호스팅은 WordPress가 여전히 오래된 버전의 PHP를 지원하는 주된 이유입니다. 작성 당시 WordPress의 자체 통계 페이지에 따르면 모든 WordPress 설치의 32.5%가 더 이상 보안 업데이트를 받지 않는 PHP 버전에서 실행되고 있습니다.
설치의 거의 60%가 PHP 5.6 및 7.0에서 실행되며 올해 말까지만 보안 패치를 받게 됩니다.
호스팅은 서버의 소프트웨어를 최신 상태로 유지하는 것 뿐만 아니라 중요합니다. 좋은 호스트는 자동화된 일일 백업, 자동 업데이트, 파일 무결성 모니터링 및 이메일 보안과 같은 더 많은 서비스를 제공합니다. 관리되는 WordPress 호스트와 데이터베이스 액세스 권한이 있는 온라인 폴더를 제공하는 호스트 사이에는 큰 차이가 있습니다.
가장 좋은 조언은 적절한 관리형 WordPress 호스트를 찾는 것입니다. 비용은 조금 더 들지만 WordPress 웹 사이트에 훌륭한 백본을 제공합니다.
3부: 기밀 유지
코드 기반이 가능한 한 안전한지 확인하고 맬웨어 스캐너와 백업으로 둘러싸인 훌륭한 WordPress 호스트에 있다면 여전히 보안 문제를 겪을 것입니다. 왜냐하면 사람들이 최악이기 때문입니다 ... 인터넷 보안에서.
기밀 유지는 자신, 고객 및 웹 사이트 사용자를 교육하는 것입니다.
기밀 데이터
당신은 그것을 모를 수도 있지만, 당신의 플러그인과 테마는 아마도 귀중한 기밀 데이터를 보여줄 것입니다. 예를 들어 WP_DEBUG
를 true
로 설정했다면 모든 해커에게 서버에서 웹사이트의 루트 경로를 보여주고 있는 것입니다. 디버깅 데이터는 프로덕션 웹사이트에 없어야 합니다.
또 다른 귀중한 데이터 소스는 댓글과 작성자 페이지입니다. 이들은 사용자 이름과 이메일 주소로 채워져 있습니다. 해커는 취약한 암호와 함께 이를 사용하여 웹사이트에 침입할 수 있습니다. 당신이 외부 세계에 무엇을 보여줄지 조심하십시오.
또한 .gitignore
에 wp-config.php
를 넣었는지 다시 확인하십시오.
혼자 코딩하지 마세요
코드 기반에 몰래 들어가는 많은 실수를 방지하는 방법은 쌍 프로그래밍을 연습하는 것입니다. 혼자라면 훨씬 어렵지만 빠른 코드 감사를 기꺼이 수행할 수 있는 많은 온라인 커뮤니티가 있습니다. 예를 들어 WordPress는 Slack을 사용하여 플랫폼 개발에 대한 모든 것을 전달합니다. 그곳에서 기꺼이 도와줄 많은 사람들을 찾을 수 있을 것입니다. 느리지만 더 나은 대안은 WordPress 포럼, StackOverflow 및 GitHub Issues입니다. 여기에서 다른 사람들이 혜택을 받을 수 있도록 질문(및 답변!)이 저장됩니다.
입력을 요청하는 것은 어려울 수 있지만 사람들은 자신의 전문 지식을 보여주는 것을 좋아하며 일반적으로 WordPress에는 매우 개방적이고 환영하는 커뮤니티가 있습니다. 요점은 코드 품질에 대한 입력을 요청하지 않으면 코드가 안전한지 여부를 알 수 없다는 것입니다.
로그인 및 비밀번호
고객이 콘텐츠를 관리하려면 WordPress에 로그인해야 합니다. 워드프레스 코어는 약한 비밀번호가 통과하는 것을 방지하기 위해 최선을 다하지만 일반적으로 이것으로는 충분하지 않습니다.
로그인 시도 제한과 함께 이중 인증을 위한 플러그인을 웹사이트에 추가하는 것이 좋습니다. 더 나은 방법은 비밀번호를 완전히 없애고 매직 링크로 작업하는 것입니다.
신뢰하지만 확인
지금까지 이 기사에서 우리는 사회 공학에 대해 전혀 이야기하지 않았습니다. 모멘텀을 얻고 있는 해킹의 한 형태이지만 일반적으로 WordPress 웹사이트를 해킹하는 데 사용되지 않습니다. 그러나 보안을 염두에 두고 웹사이트 주변에 문화를 설정하는 훌륭한 방법입니다. 사회 공학에 대한 최선의 방어는 "신뢰하되 검증하는 것"이기 때문입니다.
클라이언트, 사용자 또는 상사가 보안과 관련된 것을 요청할 때 가장 좋은 처리 방법은 신뢰하되 먼저 그들이 하는 말이 사실인지 확인하는 것입니다.
클라이언트는 WordPress에 대한 관리자 액세스 권한이 필요하다고 주장할 수 있지만 이것이 사실인지 확인하는 것입니다. 실제로 액세스 권한이 필요합니까, 아니면 역할에서 단 하나의 기능만 누락되어 있습니까? 새로운 공격 벡터를 추가하지 않고 이 문제를 해결할 수 있는 방법이 있습니까?
"신뢰하되 검증하라"는 보안 질문과 관련하여 간단하지만 효과적인 주문이며 사람들이 속도를 높이는 데 실제로 도움이 될 수 있습니다.
결론
WordPress는 안전하지 않습니까? 아니, 그렇지 않다. WordPress 코어는 지속적으로 업데이트되고 수정되며 보고된 대부분의 WordPress 해킹은 WordPress 자체에서 온 것이 아닙니다. WordPress를 둘러싼 문화가 안전하지 않습니까? 당신 벳차!
그러나 작성하는 모든 코드 라인, 추가하는 모든 사용자, 활성화하는 모든 플러그인 및 지불하는 모든 호스팅 청구서에 보안을 염두에 두면 최소한 평판을 그대로 유지하고 데이터 안전.