블로그로 돌아가기
엔지니어링 게시일 22.09.2026 1분 분량

누가 함께 읽고 있습니까? 양식 페이지의 제삼자 스크립트

문의 양식 페이지는 흔히 여러 다른 회사의 코드를 로드합니다. 일부는 방문자의 입력 내용을 볼 수 있으며, 대부분은 팀의 누구도 검토한 적이 없습니다.

문의 양식을 작성하는 사람은 메시지가 운영자에게 간다고 생각합니다. 그러나 많은 사이트의 양식 페이지에는 분석 제공업체, 광고 네트워크, 채팅 업체, 수년간 태그 관리자에 쌓인 스크립트도 실행됩니다. 각각은 자체 코드와 같은 권한으로 실행됩니다. 페이지를 읽고 입력 필드를 관찰하며 자체 서버로 데이터를 보낼 수 있습니다. 모두가 그렇게 한다는 뜻은 아닙니다. 다만 방문자가 이름, 이메일 주소, 때로는 건강, 재정 또는 법률 문제를 입력하는 페이지에서 누가 함께 읽는지 알아야 합니다.

흔히 등장하는 도구

  • 세션 재생 도구는 클릭, 스크롤 및 흔히 키 입력을 기록하여 나중에 방문 과정을 재생할 수 있게 합니다. 필드를 마스킹하지 않으면 양식에 입력한 내용도 포함될 수 있습니다.
  • 광고 및 분석 픽셀은 양식 페이지 자체와 흔히 감사 페이지에서도 페이지 조회 및 전환을 제삼자에게 보고합니다.
  • 채팅 위젯은 대개 양식 페이지를 포함한 모든 페이지에서 다른 도메인의 완전한 애플리케이션을 로드합니다.
  • 태그 관리자를 사용하면 마케팅팀이 배포 없이 스크립트를 추가할 수 있습니다. 편리하지만 아무도 검토하지 않은 코드가 양식 페이지에 들어올 수 있다는 뜻이기도 합니다.
  • A/B 테스트, 히트맵, 소셜 임베드, 글꼴, 지도 같은 작은 도구도 각각 최소한 방문자의 IP 주소와 보통 사이트 주소를 받는 호스트를 추가합니다. 그중 스크립트는 전체 페이지 URL도 읽을 수 있습니다.

세션 재생: 입력 필드 옆의 녹화기

대부분의 재생 도구는 입력 필드를 마스킹하거나 전체 영역을 제외하는 설정을 제공하며, 일부는 특정 필드를 기본적으로 마스킹합니다. 취약한 부분은 예외입니다. 기본 설정이 다루지 않는 자유 입력 메시지 필드, 마스킹 규칙이 인식하지 못하는 구성 요소로 만든 양식, 디버깅 중 누군가 껐다가 다시 켜지 않은 설정입니다. 그러면 제삼자에 저장된 녹화에 방문자가 운영자에게 쓴 내용이 그대로 포함될 수 있습니다. 방문자가 예상하지 못한 일이며, GDPR 제13조에 따라 개인정보 수신자 또는 수신자 범주를 명시해야 하는 개인정보 처리방침에도 전혀 언급되지 않았을 수 있습니다.

픽셀과 감사 페이지

전환 추적에는 양식을 전송했다는 신호가 필요하며 감사 페이지는 이를 실행하기에 자연스러운 위치입니다. 대부분의 픽셀은 이벤트마다 전체 페이지 주소를 보냅니다. 양식이 GET으로 제출되거나 전송 후 리디렉션이 ?name=…&email=… 같은 값을 URL에 붙이면 이 값이 광고 또는 분석 제공업체로 직접 갑니다. 일부 픽셀은 매칭을 개선하기 위해 양식의 이메일 주소나 전화번호를 자동으로 수집하는 기능도 제공합니다. 방문자가 쿠키 배너에 답하기 전이나 거부한 후에 픽셀이 실행되면 더 이상 기술적인 문제에만 그치지 않습니다.

양식 데이터가 모르게 사이트 밖으로 나가는 과정
1방문자가 입력합니다
이름, 이메일 주소 및 메시지를 양식 필드에 입력합니다.
2재생 스크립트가 기록합니다
마스킹되지 않은 필드가 제삼자 서버의 녹화에 들어갑니다.
3매개변수가 있는 리디렉션
전송 후 사이트가 /thanks?email=…로 리디렉션합니다
4픽셀이 실행됩니다
전환 이벤트가 이메일 주소를 포함한 전체 URL을 광고 네트워크에 보냅니다.
5데이터가 외부로 나갑니다
방문자가 공유하기로 선택한 적 없는 제공업체가 데이터를 보유하게 됩니다.
가상의 연결 과정입니다. 각 단계 자체는 드물지 않습니다.

태그 관리자, 동의 및 공급망

전체 상황을 놓치기 쉬운 곳이 태그 관리자입니다. 이 년 전 전시회 캠페인 태그, 시험 삼아 사용한 히트맵 도구, 아무도 더 이상 사용하지 않는 네트워크의 픽셀이 양식 페이지를 포함한 모든 페이지에서 여전히 로드될 수 있습니다. 트리거는 흔히 “모든 페이지”로 설정되고 동의 규칙은 태그마다 설정되므로, 한 태그의 조건만 빠져도 방문자가 동의하기 전에 스크립트가 로드됩니다.

공급망 문제도 있습니다. 다른 호스트의 스크립트를 삽입한다는 것은 현재와 미래에 그 호스트를 통제하는 사람을 신뢰한다는 뜻입니다. 업체는 스크립트의 동작을 바꾸거나 매각되거나 배포 인프라가 침해될 수 있습니다. 브라우저는 정상 스크립트와 조작된 스크립트를 구별할 수 없으므로, 양식 페이지에 주입된 코드는 모든 필드를 읽고 어디로든 보낼 수 있습니다. 결제 페이지의 스키밍과 같은 방식입니다.

할 수 있는 일

  1. 1목록을 작성하십시오. 브라우저 개발자 도구로 각 양식 페이지와 감사 페이지를 열고 Network 탭에서 모든 외부 호스트를 나열하십시오. 동의하지 않은 상태와 배너를 수락한 상태에서 각각 확인하십시오.
  2. 2아무도 필요로 하지 않는 것을 제거하십시오. 명확한 담당자와 목적이 없는 태그는 삭제 후보입니다. 양식 페이지에서 꼭 실행해야 하는 태그만 실행되도록 태그 관리자 트리거를 제한하십시오.
  3. 3재생 도구에서 입력을 마스킹하십시오. 비밀번호뿐 아니라 모든 입력 필드를 마스킹하고 가능하면 양식 영역 전체를 제외하십시오. 그런 다음 녹화를 재생하여 실제로 무엇이 저장되었는지 확인하십시오.
  4. 4개인정보 없이 전환을 보내십시오. POST로 제출하고 리디렉션 URL에 양식 값을 넣지 않으며 “contact_form_sent” 같은 중립적인 이벤트를 실행하십시오. 픽셀의 자동 양식 필드 수집을 끄십시오.
  5. 5동의 후에만 로드하십시오. 동의가 필요한 스크립트는 방문자가 동의하기 전에는 로드되면 안 되며 거부하면 계속 꺼져 있어야 합니다. 두 경로 모두 테스트하십시오.
  6. 6가능한 경우 고정하고 제한하십시오. 하위 리소스 무결성(Subresource Integrity, 스크립트 태그의 해시)은 변경된 정적 파일을 브라우저가 거부하게 합니다. 태그 관리자처럼 의도적으로 바뀌는 스크립트에는 적합하지 않습니다. 콘텐츠 보안 정책은 스크립트 실행이 허용되는 호스트를 제한합니다. 먼저 보고 전용 모드로 어떤 기능이 깨질지 확인하십시오.
  7. 7변경을 감시하십시오. 양식 페이지에 새 스크립트 호스트가 생기는 일은 뜻밖의 사건이 아니라 의도적인 결정이어야 합니다. 나타날 때 알림을 받을 수 있도록 하십시오.

formexposed는 양식 페이지에서 어떤 추적 픽셀이 실행되는지, 세션 재생 도구가 양식 입력을 기록할 수 있는지, 쿠키 배너 거부가 실제로 추적을 중단하는지 수동적인 방식으로 확인하며 아무것도 제출하지 않습니다. 무료 점검은 전체 수준을 보여주고 이러한 결과는 전체 보고서에 있습니다. 검증된 도메인의 모니터링을 사용하면 양식 페이지에 새 스크립트 호스트가 나타날 때도 알립니다.

법률 자문이 아닙니다
이 글은 제삼자 스크립트의 기술 및 개인정보 보호 측면에 관한 일반 정보를 제공합니다. 법률 자문이 아닙니다. 특정 설정에 동의가 필요한지, 개인정보 처리방침에서 설명해야 하는지는 개별 상황에 따라 달라집니다. 의문이 있다면 개인정보 보호 전문가에게 문의하십시오.