Select Page

최근 멀웨어에 감염된 워드프레스 사이트에서 멀웨어를 제거하는 작업을 한 적이 있습니다. 보통 악성코드에 감염되면 웹 서버에서 감염된 php 파일이나 js 파일을 제거하면 문제가 해결됩니다. 하지만, 드물지만 데이터베이스(DB)에도 악성 코드가 주입되는 경우가 있습니다.

멀웨어 파일들을 모두 제거해도 사이트에 접속 시 이상한 스팸 사이트로 리디렉션되는 문제가 발생하여 포스트와 페이지를 살펴보니 다음 형식의 스크립트가 추가되어 있었습니다.

<script>var f=String;eval(f.fromCharCode(102,117,110,99...125));/*674867468*/</script>

JavaScript에서 eval 함수는 문자열로 표현된 JavaScript 코드를 실행할 수 있지만 eval() 함수를 사용하는 것은 안전하지 않습니다. 그 이유는 다음과 같습니다.

  1. 보안 취약점: eval 함수는 입력된 문자열에 대한 실행 권한을 갖습니다. 악의적인 사용자가 문자열을 조작하여 보안 취약점을 악용할 수 있습니다.
  2. 성능 저하: eval 함수는 코드를 실행하기 위해 새로운 컨텍스트를 만들고 분석해야 하므로 일반적으로 다른 실행 방법보다 느릴 수 있습니다.
  3. 디버깅 어려움: eval 함수를 사용하면 디버깅하기가 더 어려울 수 있습니다. 실행 중에 동적으로 생성된 코드를 디버깅하기가 어렵기 때문입니다.

따라서, eval 함수를 사용할 때는 신중하게 사용해야 합니다. 대체 가능한 방법이 있는 경우에는 eval 함수를 사용하지 않는 것이 좋습니다. 대체 방법으로는 JSON.parse를 사용하는 것이 좋습니다. JSON.parse는 문자열을 안전하게 JavaScript 객체로 변환할 수 있습니다.

멀웨어에 감염되면 치료하는 것이 쉽지 않을 수 있습니다. 미리 조심하여 악성코드에 감염되지 않도록 주의하는 것이 중요한 것 같습니다.

워드프레스의 경우 다음과 같은 방법으로 사이트를 안전하게 운영할 수 있습니다.

  1. 워드프레스 코어, 테마, 플러그인을 최신 버전으로 유지하기
  2. 오랫동안 업데이트가 안 되고 방치되는 플러그인은 과감하게 삭제하기
  3. admin이나 사이트 도메인명 등을 관리자 아이디로 사용하지 않기
  4. 비밀번호를 강력하게 설정
  5. 정기적인 백업
  6. 보안 플러그인 설치(옵션)