텍스트 워터마크 방법?!
텍스트 워터마크?! 가 맞나?!
리뷰 데이터를 기반으로한 서비스에서는
리뷰 데이터가 자산이기 때문에 이러한 데이터의 크롤링에 민감하다.
리뷰 데이터가 이미지로만 이루어진게 아니기 때문에 이미지 워터마크를 할 수도 없다.
리뷰 텍스트에 보이지 않는 마킹을 할 수 없을까라는 생각을 해봤다.
이걸 워터마크라고 부를 수 있는지는 모르겠다.
"이젠 정말 어려워욤!"
"이젠 정말 어려워욤!"
두 문자열에 어떤 차이가 있을까?javascrip에서 첫 문자열을 복사해서 escape 해보자
-> "%uC774%uC820%u200B%20%uC815%uB9D0%u200B%20%uC5B4%uB824%uC6CC%uC6A4%21%u200B"두번째 문자열을 복사해서 escape 해보자
->
"%uC774%uC820%20%uC815%uB9D0%20%uC5B4%uB824%uC6CC%uC6A4%21"무언가 차이가 있다.%u200B 라는 유니코드값이 포함되어있다.
위키 참조시 U+200B 는 “폭 없는 공백 ZERO WIDTH SPACE” 이다.
유니코드에는 폭이 없는 공백문자가 존재한다.
위키 참조시 이러한 문자들이 여럿 있다.
이러한 문자를 응용하면 어떨까.
아래와 같은 패턴으로 출처를 구분할수 있다.
- 텍스트 사이에 심고싶은 마킹을 2진수로 변환하여. 0 또는 1에 해당하는 공백문자로 마킹한다.
- 텍스트 단어 앞뒤 마다 공백문자를 심는다.
또는 아래와 같이 어떤 사용자로 인해 조회된 리뷰인지 마킹도 가능.
- 리뷰를 조회하는 사용자 id를 2진수 변환하여 0, 1에 맞는 공백문자로 대치하고, 리뷰 텍스트 사이사이에 심는다.
리뷰의 워터마킹과 누구에 의해 크롤링 되었는지 알 수 있지 않을까 싶다.
또한 눈에 보이기에는 원문 리뷰에 영향도 가지 않으며. 유니코드값으로 변환하기 전엔 알 수 없다.
문제는. 인코딩이 변경되면 의미 없어진다는 점…
네이버 웹툰 무단복제를 어떻게 추적했을까 찾아보다 생각나서 적어봤다.
네이버는 이미지의 비트값 조작이나.
특정 해상도에서만 보이는 마킹으로 추적했을 거라는 글 들을 봤는데.
넘나 궁금하다. 물어보면 안알려주겟지. ㅡ.ㅡ