워드프레스 Widget Logic 플러그인에서 보안 취약점이 수정됨

Last Updated: 2020년 11월 14일 | | 댓글 남기기

Widget Logic 플러그인을 사용하면 사이드바의 위젯을 조건에 따라 표시하거나 숨길 수 있습니다. 예를 들어, 특정 위젯을 전면 페이지나 일부 카테고리에만 표시하거나 숨기도록 설정할 수 있습니다.

워드프레스 위젯 로직 플러그인 Widget Logic

비슷한 기능을 하는 플러그인으로 Widget Options가 있습니다.

Widget Options가 더 직관적이고 사용이 쉽지만, 워드프레스에서 제공하는 조건부 태그(Conditional Tag)에 익숙하면 Widget Logic이 훨씬 강력하고 정교하게 설정이 가능하다는 것을 느낄 것입니다. Widget Logic은 현재 30만 개 이상 사이트에 설치되어 활성화되어 있습니다. 워드프레스의 Conditional Tag는 Codex 문서를 참고해보시기 바랍니다.

예시:

  • is_home() — 메인 블로그 페이지
  • !is_page('about') — 이 특정 워드프레스 '페이지'를 제외한 모든 곳
  • !is_user_logged_in() — 사용자가 로그인하지 않을 때 표시
  • 해당 카테고리 ID 중 하나에 해당하는 카테고리 페이지
  • is_single() && in_category('baked-goods') — 이 슬러그의 카테고리에 포함된 개별 포스트
  • current_user_can('level_10') — admin 전용 위젯
  • strpos($_SERVER['HTTP_REFERER'], "google.com")!=false — 구글 검색을 통해 유입되었을 때 표시할 위젯
  • global $post; return (is_page('home') || ($post->post_parent=="13")); — 홈 페이지 OR 페이지 13의 하위(자식)인 페이지 (이런 형식으로도 코드를 넣을 수 있네요.)

이 플러그인을 사용하지 않더라도 Conditional Tag 사용법을 익혀주면 추후에 커스터마이징할 때 유용할 수 있습니다. 저처럼 PHP를 잘 몰라도 쉽게 활용이 가능합니다.

다른 방법으로 페이지나 글에 따라 다른 사이드바를 배치하는 방법도 있습니다. 아바다, 엔폴드, 뉴스페이퍼 등 일부 테마에서 페이지/글마다 다른 사이드바를 표시하도록 선택하는 옵션을 제공합니다.

이 블로그에는 현재 Newspaper 테마가 사용되고 있는데, 전면 페이지의 사이드바만 약간 다르게 구성하여 사용하고 있습니다. 테마에서 이런 옵션을 제공하면 플러그인을 사용하지 말고 테마에서 지원하는 기능을 사용할 수 있습니다.

Widget Logic의 5.9.0 이하 버전에서 원격 코드 실행(Remote Code Execution)으로 이어질 수 있는 nested CSRF(크로스 사이트 요청 변조) 취약점이 발견되어 5.9.1 버전에서 수정되었습니다. 이 플러그인을 사용하는 경우 반드시 최신 버전으로 업데이트하시기 바랍니다.

참고:


댓글 남기기

Leave a Comment