2P by GN⁺ | ★ favorite | 댓글 1개
  • Google Docs에서 문서를 HTML로 내보내면 문서 안의 링크 대상이 원래 URL이 아니라 Google 리디렉션 링크로 바뀐다는 사례가 공유됨
  • 이 동작은 스크립트 삽입이 아니라 <a href="...">의 실제 대상 변경이며, 화면에 보이는 링크 텍스트만으로는 알아채기 어려움
  • 재현은 Google Docs에 링크를 넣고 File > Download > Webpage로 ZIP을 받은 뒤, HTML 파일이나 브라우저의 링크 미리보기로 확인할 수 있음
  • 대안으로 Collabora Office가 거론됐고, LibreOffice 기반으로 Nextcloud 인스턴스·클라우드 호스트·자체 하드웨어에서 사용할 수 있음
  • 댓글에서는 로그인·쿠키·IP와 user agent 수집 가능성, GDPR 동의 문제, CryptPad·OnlyOffice·Nextcloud 같은 협업 문서 대안까지 논의가 이어짐

Google Docs HTML 내보내기에서 바뀌는 링크

  • Joe는 Google Docs 문서를 HTML로 내보낼 때 문서 안의 링크가 Google의 보이지 않는 추적 리디렉션으로 대체된다고 지적함
  • 스크립트가 추가되는 방식은 아니며, HTML의 href 값 자체가 실제 이동 대상이라 표시 텍스트만 보면 링크 변경을 알아보기 어려움
  • HTML에서 href="...""> 사이가 실제 이동 대상이고, ></a> 사이가 화면에 보이는 텍스트라는 점을 설명함
  • Read more, Profile, Wiki처럼 표시 텍스트와 실제 링크를 다르게 두는 기능 자체는 유용하지만, 이 사례에서는 그 기능이 잘못 쓰였다고 봄

재현 방법과 관찰된 동작

  • 확인 절차는 간단함
    • Google Docs 문서를 만들고 링크를 삽입함
    • File > Download > Webpage로 내려받음
    • ZIP 안의 HTML 파일을 텍스트로 열거나, 브라우저에서 열어 링크에 마우스를 올림
  • Joe는 링크 끝에도 추가된 정보가 많다고 덧붙임
  • Google이 링크 리디렉션을 통해 Google 제품을 쓰지 않는 사람까지 추적할 수 있고, 문서 작성자나 최종 사용자 동의 없이 HTML 내보내기에 이런 링크가 들어간다고 주장함

Collabora Office와 자체 호스팅 대안

  • Collabora Office는 Google 협업 오피스 기술에 대한 자유 소프트웨어 대안으로 거론됨
  • LibreOffice 기술 기반이며, Collabora는 LibreOffice의 가장 큰 기여자라고 소개됨
  • 사용할 수 있는 경로로는 Nextcloud 인스턴스, 클라우드 호스트, 자체 하드웨어가 나옴
  • 댓글에서는 Nextcloud 앱 패널에서 CODE(Collabora Online Development Edition)를 설치할 수 있다는 의견도 있음
    • 설치 후 동작하지 않으면 SELinux 컨텍스트 변경이 필요할 수 있음
    • 앱 내부 설치 방식과 높은 보안의 MAC 환경은 잘 맞지 않을 수 있다는 의견이 붙음
  • CapRover로 Nextcloud와 OpenOffice 서버를 Docker 기반 배포했다는 댓글도 있었고, 다른 댓글은 Apache 설정, Let’s Encrypt, Docker 파일 처리, reverse proxy 등 필요한 작업이 많다고 반박함

다른 협업 문서 도구와 사용 경험

  • CryptPad는 실시간 협업, 종단간 암호화, 완전한 오픈소스를 제공하는 대안으로 언급됨
  • 한 댓글은 친구 그룹 작업에 CryptPad 인스턴스를 사용 중이며, UI가 뛰어나지는 않아도 별도 설명 없이 쓸 수 있었다고 말함
  • OnlyOffice는 MS와 Google 제품의 대체재에 더 가깝다는 의견이 나옴
    • 자체 호스팅 온라인 협업 버전과 로컬 오프라인 편집기 모두 언급됨
  • Collabora Office의 Android 독립 오피스 제품도 언급됐으며, F-Droid에서 새 피드를 설치하는 QR 코드를 거친 뒤 사용할 수 있다고 설명됨

개인정보, 동의, GDPR 논쟁

  • 댓글에서는 Google 약관상 이런 변환이 허용된다는 의견과, 사용자가 약관을 현실적으로 거부하기 어렵다는 반론이 함께 나옴
  • Gmail 데이터 아카이브에 Steam 구매 내역의 게임명, 가격, 날짜가 들어 있었다는 경험담도 공유됨
  • Google Docs의 PDF 내보내기는 접근성 힌트를 포함하지 않고 글리프 위치만 배치한다는 불만도 나옴
  • GDPR 관련 대화에서는 리디렉션 전에 쿠키 배너가 보이는지 질문이 있었고, 답변은 보이지 않는다는 내용이었음
  • 다른 댓글은 로그인하지 않은 상태라면 Google 도메인이 일반 웹사이트와 같은 데이터를 받는 것이며, 쿠키를 설정하지 않고 의도한 링크로 이동한다면 무엇이 문제인지 모르겠다고 말함
  • Joe는 깊게 조사하지는 않았지만, 쿠키나 fingerprinting 여부와 무관하게 IP 주소와 user agent만으로도 VPN, 카페, 공동 네트워크가 아니라면 식별에 충분할 수 있다고 답함

댓글과 토론

Hacker News 의견들
  • Google Docs가 이제 악성코드 유포 경로로 널리 쓰이기 때문임
    사용자를 Google Docs 페이지로 보내면 Google 도메인이라 기업 방화벽과 백신 스캐너가 신뢰함
    여기서 “추적”이라고 부르는 건 사실 이 페이지임: https://www.google.com/url?q=https://wikimediafoundation.org...
    사용자가 Google을 떠나 다른 사이트로 이동한다는 걸 알려서, Google Docs를 악성코드 배포에 쓰는 효과를 줄이려는 장치로 보임

    • 나도 이미 쇠스랑까지 꺼내 들었는데…
      진지하게 말하면, 이런 걸 볼 때마다 HN 댓글에서 실제 사정을 확인할 수 있어서 다행인 경우가 10번 중 9번은 됨
      Google이 의사결정에서 면죄부를 받을 필요는 없고, “사용자 안전”이나 “더 나은 사용자 경험”을 내세우면서 결과적으로 Google의 추적 능력도 좋아지는 경우를 많이 봄
      그래도 Google은 서로 충돌하는 문제를 많이 균형 잡아야 하고, 자기 필요만 중요하다는 식으로 구는 건 정말 싫음
      Google이 로그인에 2단계 인증을 요구하는 논쟁도 비슷함. “2단계 인증 기기를 잃어버리는 사람”도 타당한 걱정이지만, 취약한 비밀번호로 해킹당하는 사람이 10배나 100배 더 많다는 점도 타당함
      단일 해법이 있다고 주장하는 건 아니지만, Google이 해결하려는 문제가 존재하지 않는 척하면 성실한 논쟁이 아님
    • 문제 제기는 Google Docs에서 내보낸 문서에 관한 것임
    • 다 좋은데, 실제 URL은 그게 아님
      q 매개변수 뒤에 이런 게 더 붙어 있음:
      &sa=D&source=editors&ust=16965233434352076&usg=Ade5344w26X85-pHzoD-rVkkdfdfBQnJ7B
      저건 꽤 추적 데이터처럼 보임
    • 사용자가 Google 문서를 Google 문서로 쓰는 동안 Google을 거쳐 보내는 건 괜찮음
      하지만 다른 사람과 “Google 문서가 아닌 파일 형식”으로 공유하려고 내보냈다면 괜찮지 않음
      Google 생태계를 벗어나는 순간, 이런 보호 기능은 추적 기능이 됨
    • 그런데 이런 링크는 그냥 통과시켜 줌
      https://www.google.com/url?q=https://www.google.com/
      https://www.google.com/url?q=https://www.youtube.com/
      공정해 보이지 않음. 이게 “선택한 오피스 제품군을 떠나는 것”에 관한 건지, 아니면 “Google을 떠나는 것”에 관한 건지 모르겠음
      흥미로운 예로, HTTP 인증서가 만료됐는데도 허용됨: https://www.google.com/url?q=https://www.keyhole.com/
  • 리디렉션의 명시된 의도는 피싱 방지라고 봄. 즉 알려진 수상한 사이트로 이동하기 전에 Google이 사용자에게 경고할 기회를 주는 것임
    추적 가능성은 그냥 덤이고!
    Microsoft도 Teams에서 이걸 함. 동료들과 공유하는 사내 사이트 링크까지 링크 검사를 거친 뒤 리디렉션됨
    그 결과 Microsoft는 외부 회사 직원들의 탐색 습관에 대한 엄청난 데이터를 갖게 됐을 것임
    회사들이 아무리 사악한 의도라도 솔직하게 말하면 훨씬 더 존중할 수 있음: “피싱으로부터 보호하려고 합니다. 하지만 링크의 99%는 아마 피싱이 아닙니다. 그래서 이 기능은 사실 여러분이 무엇을 하는지 추적하고 분석해 수익성을 높이는 데이터 수집도 가능하게 합니다”
    왜 포장하는지 모르겠음

    • Outlook과 Teams의 이런 링크가 정말 싫음. Teams 구현 자체인지 다른 것인지는 모르겠음
      회사에서는 피싱 테스트와 교육 영상을 계속 시키면서, 정작 계속 강조하던 안전 기능 하나를 없애버림
      클릭하기 전에 URL을 그냥 볼 수가 없음. 한 번은 이메일 링크를 클릭해서 회사 피싱 테스트에 “걸린” 적이 있음
      그런데 우리 이메일 시스템 자체가 링크의 유효성을 확인하려면 클릭해야 한다고 훈련시켜 온 셈임
    • 웃기게도 Google은 자기 의도를 솔직히 밝히지만, 행동 추적용 데이터 마이닝이 아니라고 해도 아무도 믿지 않음
      이런 상황에서는 이길 수가 없음
    • 미국 공립학교 구역과 18세 미만 학생들이 요즘 거의 전적으로 Google Docs를 쓰는 걸 보면, 이건 개인정보 소송으로 이어지기 딱 좋아 보임
    • Teams의 Safe Links는 관리자가 제어할 수 있는 정책임
      https://learn.microsoft.com/en-us/microsoft-365/security/off...
    • “링크 미리보기” 같은 것에서도 비슷한 성가심을 겪음. 내부 사이트나 인증이 필요한 사이트에는 애초에 불가능함
      그래서 이런 소프트웨어로 링크를 보낼 때는 살짝 난독화해서 보냄
      때로는 링크를 아예 보내지 않고 “HN item 37776492” 정도로 충분하게 처리함
  • 약간의 홍보를 하자면, 내가 일하는 회사에는 Google Docs의 오픈소스 AGPL [a], 종단간 암호화 대안으로 볼 수 있는 CryptPad를 개발하는 팀이 있음
    여러 사람이 실시간으로 문서를 편집할 수 있고, 서버는 콘텐츠에 접근하지 못함
    당연히 직접 호스팅할 수 있고, 팀이 제공하는 인스턴스 [1]도 있으며 다른 사람들이 운영하는 인스턴스도 있음
    이런 잘못된 기능은 없음. 스프레드시트, 문서, 브라우저에서 동작하는 ONLYOFFICE 포크, Draw.io 기반 다이어그램, 폼, 투표, 칸반 모듈, 패드 등이 있고 저장공간도 있음
    Google Docs의 모든 기능을 제공하진 않고 오피스 제품군도 그만큼 완성도가 높지는 않지만, 여러 용도에는 충분히 유용함
    참고로 이 스레드의 여러 답글에서 CryptPad가 이미 언급됐는데, 지금까지는 우리 쪽이 아니었고 링크를 내부 채팅에 보냈으니 팀원들이 참여할 수도 있음
    [1] https://cryptpad.fr/
    [a] https://github.com/cryptpad/cryptpad

    • 데모 흐름에서 몇 가지 불편한 점이 보였음
      새 슬라이드를 어떻게 만드는지 몰라서 문서를 읽고서야 ---를 알게 됨
      코드 블록이 어떤 언어를 원하는지도 헷갈렸고, 결국 “HTML”이라고 맞혀 봄
      코드 조각에는 godbolt.org 스타일의 작은 드롭다운 메뉴가 있으면 좋겠음. “이 고수준 코드는 정수 증가로 컴파일되니 람다 걱정은 안 해도 됨” 같은 협업 흐름에 좋음
      Godbolt는 페이지를 hello-world 예제로 채우는 것도 잘함. 적어도 특정 문서 유형을 처음 몇 번 만들 때는 그렇게 하는 게 나아 보임
      이걸 일상적인 백엔드 개발 환경으로 쓰려면 Git 연동과 okteto 스타일로 설정한 개발 환경에 SSH로 접속하는 기능이 필요할 것 같음. 그건 다른 제품에 가까움
      매일 쓰려면 데이터 백업도 필요함. 종단간 암호화가 망가지거나 비밀번호를 잃어버릴 경우를 대비해서임
      다음 질문은 오프라인 사용임. 인터넷에 노출되지 않은 LAN에 백엔드 서버를 두고 은행 계좌 정보 같은 걸 저장하고 싶고, 해외에서 휴대폰 요금제가 동작하지 않아도 여행 일정을 봐야 하며, 서버가 죽으면 기기에 있는 데이터를 새 서버로 “복사”하고 싶기 때문임
      어쨌든 몇 년 동안 이런 걸 찾고 있었고, 요구사항 대부분을 충족하는 것처럼 보임
      충돌 해결은 어떻게 동작함? CRDT인지, 아니면 다른 방식인지 궁금함
    • CryptPad를 언급하려고 들어왔음. 직접 호스팅해서 쓰고 있는데 꽤 좋음
  • Google은 Advanced Protection을 켠 상태에서 IMAP으로 접근한 Gmail 이메일의 URL도 Google URL 리디렉터 서비스로 바꿔 씀
    즉 메시지 본문을 다시 쓰기 때문에 PGP 서명 같은 것이 깨짐
    정말 끔찍함
    FAA702만으로도 충분했지만, Google에 저장된 모든 데이터에 대한 영장 없는 감시가 개인적으로 와닿지 않았다면, 정부가 요구한 백도어가 설치된 뒤 Google의 형편없는 행태는 충분히 이유가 됨
    이제 삶에서 Google을 걷어낼 때임

    • Gmail에서 오는 이메일 중 표준 HTML 메일 클라이언트에서 제대로 렌더링되지 않고, 첨부파일이 Google 서버에 호스팅되는 메시지를 자주 받음
      그런 첨부파일은 아마 만료되고, 대량 감시에 더 쉽게 쓰일 수 있을 것임
      대형 클라우드 업체들이 앞서 말한 정부 백도어 의무화를 모두 지지했다는 점도 다시 말할 필요가 있음
      내가 보기엔 규제 포획 움직임이었음. 고객을 감시하고 선택적으로 신고함으로써 생기는 권력을 원했지만, 미국 시장에 서비스를 제공하는 어떤 회사도 실질적으로 더 나은 개인정보 보호나 보안을 제공하지 못하게 만들고 싶었던 것임

      The CLOUD Act received support from Department of Justice and of major technology companies like Microsoft, AWS, Apple, and Google.[12][13] The bill was criticized by several civil rights groups, including the Electronic Frontier Foundation, the American Civil Liberties Union, Amnesty International, and Human Rights Watch. These groups argued that the bill stripped away Fourth Amendment rights against unreasonable searches and seizures, since the government could enter into data rights sharing agreements with foreign countries and bypass U.S. courts, and affected users would not have to be notified when such warrants were issued.[13][14] Some of these groups feared the government would not fully review requests from foreign countries for their citizens' stored on servers in the U.S., potentially allowing such data to be used in bad faith in those countries.[15]
      https://en.wikipedia.org/wiki/CLOUD_Act

  • 몇 년 동안 Google 검색 결과 링크를 복사하면 리디렉션 URL이 복사됐음
    마우스를 올리면 실제 링크가 보이지만, 오른쪽 클릭을 하면 리디렉션으로 바뀌었음

    • 그걸 고쳐 주는 간단한 브라우저 확장 기능이 있지만, 그래도 이런 동작은 짜증나고 불쾌하며 거의 기만적임
      출처를 생각하면 놀랍지는 않지만
  • 이 글은 어떤 회사에 대한 고정된 편견을 가진 사용자가 흔한 기능을 보고, 기본적으로 그 회사의 최악의 의도를 가정하면 어떤 일이 생기는지 잘 보여줌

    • 맞음
      내보내기 기능에 “닫힌 생태계를 떠납니다” 같은 문구를 제거하는 기능을 추가하는 건 공짜가 아님
      하지만 “Google은 사악하다”고 불평하는 건 공짜임
      전형적으로 게으름을 악의와 동일시하는 경우임
  • 이건 추적용이 아니라고 봄
    단지 추적만이 목적이라면 훨씬 더 간단하고 눈에 덜 띄는 방법이 있음. 예를 들어 백그라운드 핑을 하나 추가하면 됨
    Google이 링크 목적지가 악성이라고 판단할 때 사용자를 가로막기 위한 기능, 예를 들면 악성코드 배포 차단에 가까워 보임

  • 아직 직접 해보지는 않았는데, 이게 Google Workspace 유료 계정에서 내보낸 문서에도 적용되는지 궁금함

    • Mastodon 스레드에 따르면 유료 계정도 동일하다고 함
  • 좀 더 선의로 보면, 링크가 리디렉션 안내를 띄우고 새 탭에서 열리게 하는 듯한데, Google Docs 편집기 안에서는 좋은 동작으로 보임
    확실히 알 수는 없지만, 그 안에 추적도 있을 가능성이 큼. 쿼리 매개변수에 있는 불투명한 문자열이 다른 용도로 쓰일 게 뭐가 있겠음?
    링크 재작성은 여기서 비롯된 것으로 보이고, 내보낸 버전에만 추가된 건 아닐 것임
    내보낼 때 제거되지 않는 건 실망스럽지만, 팀에서 아무도 신경 쓰지 않는 구석진 사례일 가능성이 높아 보임
    또 추적이 들어 있다면 그 값이 어떻게, 언제 갱신되는지도 모름. 예를 들어 남은 동작인지, 내보내기 시점에 갱신되는지, 같은 문서를 내보낼 때 사용자마다 고유한 추적 번호를 받는지도 알 수 없음

  • Google 제품을 쓰는 사람이 여전히 개인정보 보호나 활동 추적을 걱정한다는 게 이해되지 않음
    Facebook을 쓰는 것과 비슷함. 이런 회사들의 사업은 사용자 데이터를 캐내는 데 기반하니, 그냥 쓰지 않는 게 맞음