브라우저 뒤로가기를 누르면 이상한 페이지로 가던 경험, 있으시죠?
웹서핑을 하다가 뒤로가기 버튼을 눌렀는데, 이전 페이지로 안 돌아가고 엉뚱한 광고 페이지가 뜨거나, 아예 같은 페이지에 갇혀버린 경험 다들 한 번쯤 있을 거예요. 이걸 "뒤로가기 버튼 하이재킹(Back Button Hijacking)"이라고 부르는데요. 이번에 구글이 이런 행위를 하는 웹사이트를 공식적으로 스팸으로 분류하겠다는 새 정책을 발표했어요.
이게 뭐냐면, 구글 검색 결과에서 이런 사이트들의 순위를 확 떨어뜨리거나, 아예 검색 결과에서 빼버리겠다는 뜻이에요. 웹사이트를 운영하는 개발자라면 반드시 알아두어야 할 변화예요.
기술적으로 어떻게 작동하는 걸까?
뒤로가기 버튼 하이재킹은 주로 브라우저의 히스토리 API를 악용해서 이루어져요. 브라우저에는 history.pushState()라는 기능이 있는데, 이게 뭐냐면 사용자가 실제로 페이지를 이동하지 않아도 브라우저의 방문 기록에 새로운 항목을 추가할 수 있는 기능이에요. 원래는 SPA(Single Page Application, 페이지 전환 없이 동작하는 웹앱)에서 URL을 깔끔하게 관리하려고 만든 기능인데, 이걸 악용하는 거죠.
악성 사이트들은 사용자가 페이지에 들어오자마자 history.pushState()를 수십 번 호출해서 가짜 히스토리 항목을 잔뜩 쌓아놔요. 그래서 사용자가 뒤로가기를 눌러도 계속 같은 페이지에 머무르게 되는 거예요. 또 다른 방식으로는 beforeunload 이벤트나 popstate 이벤트를 가로채서, 사용자가 뒤로가기를 시도할 때 다른 URL로 리다이렉트시키는 수법도 있어요.
이런 기법들은 주로 광고 수익을 극대화하려는 사이트들이 사용해왔는데요. 사용자를 페이지에 가두면 광고 노출 수가 올라가니까요.
구글의 새 정책은 뭐가 달라졌나
구글은 이전에도 "사용자 경험을 해치는 행위"를 스팸 가이드라인에 포함하고 있었지만, 뒤로가기 하이재킹을 명시적으로 콕 집어서 스팸으로 규정한 건 이번이 처음이에요. 이전에는 좀 모호한 부분이 있어서, "우리 사이트는 기술적으로 스팸이 아니다"라고 주장할 여지가 있었거든요.
이번 정책 변경으로 구글은 자동화된 시스템과 수동 리뷰 모두를 통해 뒤로가기 하이재킹을 탐지하겠다고 밝혔어요. 적발되면 해당 사이트 전체 또는 특정 페이지가 검색 결과에서 제외될 수 있어요. 이건 SEO(검색엔진 최적화)에 의존하는 사이트에게는 사실상 사형 선고나 다름없는 거죠.
비슷한 규제 흐름들
사실 이런 움직임은 구글만의 이야기가 아니에요. 최근 몇 년간 브라우저 벤더들도 비슷한 방향으로 움직여왔거든요. 크롬은 이미 일부 뒤로가기 하이재킹 패턴을 브라우저 레벨에서 차단하는 실험을 해왔고, 사파리나 파이어폭스도 사용자 의도에 반하는 내비게이션 조작을 제한하는 방향으로 업데이트를 진행해왔어요.
또한 구글은 최근 몇 년 동안 코어 웹 바이탈(Core Web Vitals) 같은 사용자 경험 지표를 검색 순위에 반영하면서, 단순히 "좋은 콘텐츠"를 가진 사이트뿐 아니라 "좋은 경험"을 제공하는 사이트를 우대하는 방향으로 계속 나아가고 있어요. 이번 뒤로가기 하이재킹 정책도 그 큰 흐름의 연장선이에요.
한국 개발자와 사이트 운영자가 확인해야 할 것들
만약 웹사이트를 운영하고 계시다면, 지금 당장 확인해볼 것들이 있어요.
먼저 여러분의 사이트에서 history.pushState()나 history.replaceState()를 사용하고 있다면, 그게 정당한 목적으로 사용되고 있는지 점검해보세요. SPA의 라우팅 처리나 사용자 편의를 위한 목적이라면 문제없지만, 광고 스크립트나 서드파티 플러그인이 몰래 히스토리를 조작하고 있을 수도 있거든요. 특히 광고 네트워크의 스크립트가 이런 짓을 하는 경우가 꽤 있어서, 외부 스크립트도 꼭 점검해보셔야 해요.
또한 쇼핑몰이나 미디어 사이트에서 팝업이나 모달을 띄울 때 pushState를 사용하는 패턴이 있는데, 이것도 구현 방식에 따라 뒤로가기 하이재킹으로 판단될 수 있으니 주의가 필요해요. 뒤로가기를 눌렀을 때 사용자가 기대하는 동작, 즉 "이전 페이지로 돌아가기"가 정상적으로 이루어지는지 직접 테스트해보는 게 가장 확실해요.
마무리
구글이 뒤로가기 하이재킹을 공식 스팸으로 규정하면서, 사용자 경험을 해치는 꼼수는 점점 설 자리를 잃어가고 있어요.
혹시 여러분이 운영하는 서비스에서 서드파티 스크립트가 브라우저 히스토리를 건드리고 있진 않은지, 한번 점검해보시는 건 어떨까요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공