WordPress의 논스 가이드
게시 됨: 2023-02-12보안은 모든 웹사이트 소유자에게 중요한 주제입니다. 웹 사이트를 안전하게 유지하기 위한 많은 전략이 있지만 WordPress에서 임시값을 사용하는 것을 간과해서는 안 됩니다. 이것은 가장 널리 사용되는 보안 기능 중 하나이며 다양한 잠재적인 문제를 방지합니다.
nonce는 '한 번 사용되는 숫자'이며 악의적인 개인 및 기타 오용으로부터 양식과 URL을 보호합니다. 이 숫자는 민감한 작업을 수행할 수 있는 권한을 얻기 위해 사용자의 브라우저가 표시해야 하는 식별 값으로 작동합니다.
이 기사에서는 WordPress에서 nonce가 작동하는 방식과 nonce를 생성하는 방법을 살펴보겠습니다. 그런 다음 nonce를 확인하는 방법에 대해 설명합니다. 시작하자!
Nonce는 WordPress에서 어떻게 작동합니까?
nonce의 주요 목적은 CSRF(Cross-Site Request Forgeries)와 같은 악의적인 공격으로부터 WordPress 웹 사이트를 보호하는 것입니다. 이러한 유형의 공격은 사용자를 속여 양식을 제출하거나 웹 사이트에 유해한 링크를 클릭하도록 합니다. 사이트를 보호하기 위해 WordPress는 nonce 값을 확인하고 해당 값이 올바른 경우에만 작업을 완료하도록 허용합니다.
Nonce는 이미 WordPress 기능의 일부이며 WordPress 생성 요소에 추가할 필요가 없습니다. 즉, 게시물 추가 및 편집과 같은 주요 작업이 자동으로 보호됩니다.
nonce가 사용되면 기본 수명은 24시간입니다. 그 시간이 지나면 nonce는 정의된 작업을 확인하는 데 더 이상 사용할 수 없습니다. 그러나이 수명은 웹 사이트 관리자가 조정할 수 있습니다.
nonce가 방어하는 가장 일반적인 CSRF 공격 중 하나는 악의적인 사용자 계정 삭제입니다. nonce를 구현한 후 관리 화면에서 계정 삭제를 위한 URL을 생성합니다. WordPress는 해당 URL의 끝에 다음과 같은 nonce를 추가합니다.
http://yourdomain.com/wp-admin/users.php?user=7&action=delete&_wpnonce=c214gd5315
공격자가 사용자 ID를 "user=8"과 같은 다른 값으로 바꾸려고 하면 nonce가 유효하지 않게 됩니다. 계정 삭제에 실패하고 403 Forbidden 오류 페이지가 표시됩니다. 이렇게 하면 악의적인 개인이 사이트의 콘텐츠를 공격하기가 훨씬 더 어려워집니다.
nonce가 웹 사이트를 보호할 수 있다는 사실을 아는 것도 중요하지만 이를 구현하는 방법도 이해해야 합니다. 기본 WordPress 기능에 대해 이미 활성화되어 있지만 테마 및 플러그인에 대해 수동으로 구현해야 할 수 있습니다.
난스 만들기
nonce를 만들려면 웹사이트 코드에 함수를 추가해야 합니다. 모든 nonce 생성 코드는 functions.php 파일에 있습니다. 이 파일을 열려면 WordPress 대시보드에서 모양 > 테마 편집기 로 이동합니다. 오른쪽에서 functions.php를 클릭하여 파일 편집기를 엽니다.
Nonce는 URL, 양식 및 작업에 대해 별도로 구현됩니다. 작업 nonce를 만들려면 이 파일에 다음 코드를 추가합니다.
$nonce= wp_create_nonce('$action');
nonce에서 확인하려는 작업을 반영하도록 코드의 "$action" 섹션을 조정해야 합니다. 게시물 삭제를 시도하는 사용자를 확인하기 위해 nonce를 설정하는 "delete-post" 작업을 사용하는 것이 그 예입니다.
URL에 대한 nonce를 만들려면 다음 코드를 사용할 수 있습니다.
$nonce= wp_nonce_url();
괄호 안에 함수의 인수를 명시해야 합니다. 이것은 기본 URL 및 사용자 작업 문자열입니다. 문자열은 nonce의 보안을 개선하기 위해 단일 사용자에게 고유해야 합니다.
사용자 계정 삭제를 위한 nonce를 생성하려면 다음 스니펫을 사용할 수 있습니다.
$nonce= wp_nonce_url($bare_url,'delete-user_'.$user->ID);
워드프레스는 nonce의 이름을 "_wpnonce"로 기본 설정하지만 선택한 이름을 위 문자열의 끝에 추가하여 이를 업데이트할 수 있습니다.
양식에 대한 nonce를 만들려면 다음 코드를 포함합니다.
$nonce= wp_nonce_field();
괄호 안에 사용자 작업에 대한 문자열을 추가해야 합니다. 완료되면 함수는 양식에 두 개의 숨겨진 필드를 생성하며 첫 번째 필드는 nonce 해시 값을 보유합니다. 두 번째 필드는 현재 URL입니다. 최종 함수는 다음과 같아야 합니다.
$nonce= wp_nonce_field('remove-comment_'.$comment_id);
이 nonce 함수에는 기본 WordPress nonce 이름도 있습니다. 그러나 원하는 경우 수정할 수도 있습니다.
난스 확인
WordPress 웹사이트에 nonce를 추가한 후 이를 확인하는 것이 중요합니다. 이렇게 하면 nonce가 올바르게 작동하고 웹사이트를 안전하게 유지할 수 있습니다.
URL 및 양식에 대한 nonce를 확인하는 데 다른 방법이 사용됩니다. URL nonce를 확인하려면 functions.php 파일에 다음 코드를 추가합니다.
wp_verify_nonce($nonce, $action);
이 기능에서 "delete-user"와 같이 확인하려는 nonce의 이름에 "$nonce"를 조정합니다. 그런 다음 "$action" 문자열을 nonce가 생성된 특정 시간으로 변경합니다. 함수가 실행될 때 nonce가 유효하지 않으면 "false"를 반환합니다.
반면에 nonce가 유효하면 함수는 1 또는 2를 반환합니다. 이것은 nonce의 나이를 알려줍니다. 1과 같은 값은 nonce가 지난 12시간 동안 생성되었음을 의미합니다. 2와 같은 값은 nonce가 12시간 동안 생성되었지만 24시간 미만이라는 의미입니다.
양식에 nonce를 추가한 경우 이를 확인하려면 다음 코드가 필요합니다.
check_admin_referer($action, $nonce);
nonce 값이 유효하면 양식이 의도한 대로 작동합니다. 그러나 nonce가 유효하지 않은 경우 사용자의 브라우저는 사용자를 403 Forbidden 오류 페이지로 리디렉션합니다.
WP 엔진에서 안전한 디지털 경험 구축
보안은 안정적인 웹사이트에 필수적이며 nonce는 추가 보호 계층을 추가합니다. 이를 구현하려면 functions.php 파일에 코드를 추가하기만 하면 됩니다. 사용되는 코드는 생성하려는 nonce 유형과 보호하려는 작업에 따라 다릅니다.
nonce를 만들고 구현하면 사이트 보안이 강화되지만 고려해야 할 다른 보안 프로토콜도 있습니다. 다행스럽게도 WP Engine의 안전한 WordPress 호스팅 플랫폼은 사용자와 개발자에게 최고의 보안 리소스를 제공합니다. 이렇게 하면 WordPress 사이트를 완성하는 데 더 많은 시간을 할애할 수 있습니다!