워드프레스 되살리기 비하인드

[원글 : 2024 / 02 / 20]
2022년 연말에 이 공간을 잠시 끄적거렸다가 1년 넘게 방치하고 다시 시작하기로 마음 먹었을 때, 과연 아무런 문제없이 잘 진행되었을까요? 당.연.히. 아니었습니다.


사실, 글을 쓰고 있지 않을 때에는 3개월에 한번만 접속을 했으므로 관리에 크게 문제가 없었는데 블로그를 새롭게 살려보겠다고 졸면서 user 쪽도 손보고 category도 손보고 하다가 워드프레스 내 패스워드를 분실했습니다.

블로그 패스워드 잃어버리는 것 쯤은 워드프레스 프로그램에서도 대비하고 있는 일. 재설정을 눌렀더니 메일을 확인하라고 하네요. 그런데 메일이 안 옵니다. 아마도 저렴한 웹호스팅이라서 메일보내기 같은 명령이 안 되는 게 아닐까 싶네요. 메일발송 권한 가진 상태에서 보안 구멍나면 그대로 스팸서버 되는 거니까요.

메일로 패스워드 재설정을 할 수 없다니 살짝 당황했지만, 내가 돈 내서 빌린 호스팅이니 수동으로 바꿀 수 있지 않을까 하고 검색해보니 다행히도 방법이 있습니다.

Reset WordPress Password: 3 Ways To Do It Manually

쉽게 말해서 DB 직접 들어가서 users 테이블 들어가서 고치면 되는데, 암호화를 고려해서 user_pass를 MD5 형태로 저장하면 되는 거였습니다.

별거 아니구나..했는데 ‘DB 패스워드가 뭐였지?’하며 아차 싶었습니다. 이건 정말로 1년 넘게 안 건드린 건데- 당시에 나름대로 복잡하게 만들어뒀던 터라 기억이 안 납니다. (영문 대소문자와 숫자, 특수문자를 섞어서 12글자 이상의 난수로 된 패스워드를 만들고 그걸 까먹으면.. X되는 겁니다.)

이제 알아내야 하는 게 DB 패스워드로 바뀌었습니다. 이건 호스팅 서비스를 받고 있으니 설정 들어가서 패스워드를 바꾸면 되는 문제일텐데.. 알고보니 저는 이 호스팅이 들어있는 CAFE24 계정의 패스워드도 몰랐습니다. 메인 CAFE24 계정으로 접속해서 서브아이디로 바꿔서 작업했기 때문에 직접 접속해본 적이 없는데, 여기가 무려 2018년에 만든 계정이더군요. 5년 반동안 안 쓴 패스워드이니 알 수가 없죠. (이쯤되면 아는 게 뭐지 싶은데..) 결국 늦은 밤에 관리자 ‘개인정보’를 바탕으로 핸드폰 문자 인증해가며 바꿔서 해결해야 했습니다.

그런데 알고 보니 이렇게 복잡하게 할 필요 없는 문제였습니다.
DB명/패스워드는 워드프레스 설치 때 입력하게 되어 있고 wp-config.php에 기록되어 있습니다. 어딘가 파일에 기록될 수밖에 없는 게.. DB에 접근할 때 필요한 정보를 DB 안에 적을 수는 없으니 로컬 파일에 기록해야죠.
DB에 접속할 수만 있다면 사용자 계정 정보는 phpMyAdmin으로 고칠 수 있습니다. 저는 phpMyAdmin이 익숙하지만- 뭐가 되었든 인터넷에서 쓸 수 있는 SQL관리도구가 있으면, 아니면 직접 SQL쿼리 치는 방법으로 해결됩니다. 제 계정의 SSH 접속 패스워드만 알고 있으면 되는 거였네요.


워드프레스는 전세계에서 가장 많이 쓰는 사이트 제작도구입니다. 그렇다 보니 늘 해킹을 걱정하게 되는데- 위에서 적었듯 패스워드를 제가 기억도 못하는 복잡한 것으로 설정해서 고생했던 것도 워드프레스는 공격을 많이 받는다는 생각 때문이었습니다. 그리고 그 중 하이라이트는 관리자 메뉴..겠죠. 물론 가장 중요한 건 root 디렉토리입니다. 지금 글 쓰면서도 생각하지만 wp-config.php랑 phpMyAdmin 털리면 끝장이죠.

플러그인으로 찾아보면 뭐든 있는 워드프레스의 세계에서 관리자 접속화면을 wp-admin으로 두는 건 게으른 거죠.

여러가지 플러그인이 있는데.. 저는 그 중 WPS Hide Login 이란 것을 사용하고 있습니다. 매니지드 워드프레스에서 써봤는데 괜찮더군요. 그래서 이 블로그를 본격적으로 활용하면서 여기에도 설치해봤습니다.

설정 메뉴 들어가보면 login url을 이렇게 쉽게 바꿀 수 있습니다. wp_admin보다 더욱 쉬운 login이 기본 주소라니 이거 위험한 플러그인이군요. 잽싸게 저만의 주소로 바꿨습니다. ^^


워드프레스는 블로그만 생각하고 만들어진 도구가 아닌 것 같습니다. 무려 60초마다 임시본을 서버에 저장하도록 되어 있는데 임시본이 여러개 있으면 제가 뭔가 실수를 했을 때에 돌아갈 수도 있다든지 장점이 분명 있긴 합니다만- 그래도 자동으로 임시본이 생기고, 심지어 수정할 때마다 생기는 것은 낭비로 느껴집니다.

그래서 그걸 설정에서 없앨 수 있는가 봤는데, 안타깝게도 현재 설정에서 건드려서 없앨 수는 없고 그에 관련된 플러그인이 여럿 있더군요. 그런데 플러그인은 어째 꺼림직하다는 느낌이라서 다른 방법은 없는가 봤더니,

어차피 그것도 SQL에 저장되는 것. SQL 접속하면 한방에 해결할 수 있더군요. (출처)

DELETE FROM wp_posts WHERE post_type=”revision”;

아주 직관적입니다. 임시본이 저장되는 곳이 포스팅과 같은 공간이고 최종본의 post_type은 post이고, 임시본은 revision이니까 wp_posts 테이블에서 revision이라 붙은 것을 싹쓸어버리면 되네요.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *