05의 개발 계발

복사 방지 페이지 복사하기 - Disable JavaScript 본문

알아두면 쓸모있는 호기심

복사 방지 페이지 복사하기 - Disable JavaScript

생각하는 코댕이 2024. 5. 29. 01:23
728x90

알아두면 쓸모있는 호기심


간혹 복사기능을 막아둔 웹페이지가 있다.
그럴 땐 위 처럼 Disable JavaScript 를 체크하면 일시적으로 복사가 되는 것은 우리는 익히 안다.

그럼 왜? 이것이 가능한 것일까?

궁금하면 검색해봐야지!


그렇다. 사실 이미 예상했듯이, 복사 방지 기능이 JS(JavaScript) 로 구현되어있기 때문이다.
아래는 일반적으로 사용하는 복사방지 JS 코드이다.

//contextmenu 이벤트 비활성화:

document.addEventListener('contextmenu', function(event) {
    event.preventDefault();
});

//copy 이벤트 방지
document.addEventListener('copy', function(event) {
    event.preventDefault();
});

//텍스트 선택 방지
document.addEventListener('selectstart', function(event) {
    event.preventDefault();
});

간단히 말하자면 복사방지 기능자체가 JS로 구현이 되어 있기에, JS를 비활성화 시키는 Disable JavaScript 옵션을 이용하면 복사가 가능하게 되는 것이다.


<결론>

Disable JavaScript 옵션은 JS를 비활성화 시킨다.
그래서 복사방지기능을 먹통시켜 복사가 가능하다!
하지만 JS로 구현된 다른 모든 기능들도 먹통된다는 점 유의!


JS를 통해 동적으로 컨텐츠가 생성되는 동적페이지의 경우, JS를 비활성화 할 시 페이지에 컨텐츠가 나타나지 않는다.
이를 이용하면 웹크롤링에 있어 어떤 방법을 사용할지에 대한 판단 기준으로 사용할 수 있다.

  • JS비활성화해도 컨텐츠가 보인다 = (정적페이지) → requests + BeautifulSoup
  • JS비활성화하면 컨텐츠가 안 보인다 = (동적페이지) → Selenium
728x90