>웹 프론트엔드 >JS 튜토리얼 >http 하이재킹된 플로팅 광고를 처리하는 방법

http 하이재킹된 플로팅 광고를 처리하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-19 11:04:393177검색

이번에는 http 하이재킹floating광고 처리 방법과 http 하이재킹 및 플로팅 광고 처리 시 주의사항은 무엇인지 알려드리겠습니다. 실제 사례를 살펴보겠습니다.

최근에 웹사이트 오른쪽 하단에 플로팅 광고가 자주 나타나는 걸 발견했어요. 처음에는 그냥 브라우저 광고인 줄 알았어요.

나중에 점점 더 많은 동료들이 집에 있는 다른 브라우저에 광고가 나타날 것이라고 보고했습니다. 그러다가 자세히 확인한 결과 웹사이트가 하이재킹된 것을 발견했습니다.

그러다가 바이두에서 http 하이재킹, dns 하이재킹, 운영자 하이재킹 등 수많은 정보를 검색해 보니 제가 속았다는 확신이 들었습니다.

정말 절제해서 광고 코드가 삽입되었습니다. 얼마나 비양심적인 사업가인지 그는 무엇이든 할 수 있다.

그러나 가장 중요한 해결책은 무엇입니까? 그런 다음 문제는 운영 및 유지 관리 동료에게 던져졌습니다.

결론은 해결책이 없다는 것입니다. 예, 정말 사기입니다. https를 사용하지 않는 한. 전화를 걸고 온라인으로 불만 사항을 보내는 것은 아무 소용이 없는 것 같습니다. 어쩌면 운영 및 유지 관리가 너무 나쁠 수도 있습니다. 어쨌든 결과는 아무것도 아니다.

그러면 우리가 할 수 있는 일은 아무것도 없었습니다. 우리는 그것을 막는 방법을 프론트엔드에서만 찾을 수 있습니다. 그런 다음 하이재킹 코드를 연구하는 여정을 시작했습니다.

...이 프로세스에서는 800 단어 검색 프로세스가 생략되었습니다.

마지막으로 하이재킹된 광고는 하이재킹된 광고에 대한 일부 정보를 저장하는 js 전역 변수 _pushshowjs_를 정의한 다음 _embed_v3_dc ID로 p를 생성하여 광고를 넣는 것으로 나타났습니다. 그리고 매번 똑같을 것이고 변화는 없을 것입니다.

하이재킹된 광고의 전달 원리에 따라, js를 이용하여 하이재킹된 광고를 차단하는 방법이 최종적으로 사용되었습니다.

구체적인 코드는 다음과 같습니다:

;(function($,window,undefined){
 var needClear=false,
  timeout;
 if(window._pushshowjs_){
  console.log("adHttp");
  needClear=true;
 }
 window._pushshowjs_={};
 Object.freeze(window._pushshowjs_);//让对象只读, 防止属性被直接修改
 Object.defineProperty(window, '_pushshowjs_', {
  configurable: false,//防止属性被重新定义
  writable: false//防止属性被重新赋值
 });
 if(needClear){
  timeout=setInterval(function(){
   if($("#_embed_v3_dc").length>0){
    $("#_embed_v3_dc").remove();
    console.log("http清除");
    needClear=false;
    clearInterval(timeout);
   }
  },500);
  $(window).load(function(){
   if(needClear){
    setTimeout(function(){
     clearInterval(timeout);
     console.log("清除");
    },2000);
   }
  });
 }
}(jQuery,window));

코드가 많지 않아 자세히 분석하지는 않겠습니다. (코드에 문제가 있다고 생각하시면 정정해주세요.) 간단히 말해서 광고 하이재킹에 필요한 전역 js 변수 _pushshowjs_를 수정 불가능하고 읽기 전용으로 설정합니다. 광고를 발견하면 삭제하세요.

코드를 공개하고 결국 하이재킹된 광고에 88을 말했어요.

왜 어리석은 방법이라고 말합니까?

왜냐하면 이것은 자기기만에 불과하기 때문입니다. 실제로 하이재킹이 여전히 존재하며, 하이재킹된 js의 로딩 순서가 변경되어 오류가 발생할 수 있습니다. 이상적인 해결책은 이를 해결하기 위해 운영 및 유지 관리와 운영자에 의존하거나 https를 사용하는 것입니다.

각 하이잭의 광고 논리는 유사해야 하지만 광고 코드는 다릅니다. 따라서 이는 다른 하이재킹 광고에는 적용되지 않을 수 있습니다. 이것은 단지 아이디어일 뿐이며 모든 솔루션 중 하나일 뿐입니다.

누군가 더 나은 해결책을 갖고 있다면 조언을 부탁드립니다.

위의 js를 사용하여 http로 하이재킹된 플로팅 광고를 차단하는 방법은 편집자가 공유한 내용이 모두 참고가 되셨으면 좋겠습니다. Yiju Tutorial Network를 지원해 주시길 바랍니다.

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

Vue 범위 슬롯 사용에 대한 자세한 설명

JS를 통해 데이터 유효성 검사 및 체크박스 양식 제출 구현

JS를 통해 캐러셀 이미지를 쉽게 구현


위 내용은 http 하이재킹된 플로팅 광고를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.