가끔 복사방지기능을 넣은 블로그들이 있습니다.
본인 마음이긴 한데 코딩 블로그들이 이런걸 하면 싫어하는 분들이 많은 것 같습니다.
왜냐면
우리가 쓰는 프로그래밍 언어와 프레임워크는 오픈소스로 발전해왔고
그래서 코딩할 때도 문제해결 지식공유 마인드로 다같이 성장하는 분위기도 있고
그래서 코드를 올려놓고 복사방지를 해놓으면 뭔가 쫌생이 같긴 합니다.
하지만 진짜로 복사를 막고 싶은 경우들이 가끔 있긴 합니다.
예를 들어 책이나 웹소설같은 저작물같은걸 보여줘야하는 사이트들은
글을 복사해가기 어렵게 만드는것도 구현하고 싶을 수 있습니다.
그럴 때 자바스크립트와 CSS를 조절하면 되긴 됩니다.
구현방법
document.addEventListener('selectstart', e => e.preventDefault())
document.addEventListener('contextmenu', e => e.preventDefault())
자바스크립트로 이벤트들을 막아버리면 글 선택이랑 우클릭이 안되게 막을 수 있습니다.
div {
user-select: none;
}
CSS를 추가해도 글 선택을 막을 수 있습니다.
해결방법
자바스크립트로 막아놓는 경우에는
크롬 브라우저 개발자도구에서 ctrl+shift+p눌러서 "Disable JavaScript" 찾아서 Disable 눌러놓고 페이지를 새로고침하면 쉽게 해결할 수 있습니다.
개발자도구를 여는 키를 막아놔도 그냥 미리 켜놓고 들어가면 되지않나 싶기도 하고
CSS로 막아놓는 경우에는 해당 요소를 개발자도구에서 찾아서 CSS 수정부분에서 user-select: text !important; 를 추가하면 해결됩니다.
그래서 막는 의미는 딱히 없긴 합니다.
다른 아이디어: 폰트 스크램블
극단적으로 가려면 폰트를 가져다가 스크램블하면 어떨까 싶기도 합니다.
폰트 파일을 오픈해서 A라는 글자는 B같은 모양으로 바꿔버리는겁니다.
그럼 그 폰트파일을 웹페이지에 적용했을 때 A라고 쓰면 B라고 읽히지만
드래그해서 복사해가면 A라는 글자가 복사됩니다.
하지만 단점
이런거 해봤자 단점들이 있습니다.
1. 실제로 웹소설인지 e-book인지 그런 사이트에서 폰트 조작을 하다가 커스텀 폰트 쓰던 유저들이 갑자기 UI가 깨져서 불만을 쏟아내서 롤백했다는 소문이 있었습니다.
2. 웹 접근성을 해치는 식으로 폰트를 꼬아놓거나 그러면 스크린리더를 사용하는 장애인들이 불편해지기 때문에 장애인차별금지법의 철퇴를 맞지 않을까요.
3. 그리고 AI에게 OCR해달라고 하면 3초만에 잘해주기 때문에 어짜피 못막습니다.
그리고 웹은 뭔가를 보여주기 위해서 만드는 것인데 그걸 정작 숨기고 싶다면 뭔가 모순 아닐까 싶기도 합니다.
저작권법을 애용하도록 합시다.
