KR20110009675A - 웹 브라우저 상의 광고 표시를 선택적으로 보장하는 방법 및 시스템 - Google Patents

웹 브라우저 상의 광고 표시를 선택적으로 보장하는 방법 및 시스템 Download PDF

Info

Publication number
KR20110009675A
KR20110009675A KR1020107025520A KR20107025520A KR20110009675A KR 20110009675 A KR20110009675 A KR 20110009675A KR 1020107025520 A KR1020107025520 A KR 1020107025520A KR 20107025520 A KR20107025520 A KR 20107025520A KR 20110009675 A KR20110009675 A KR 20110009675A
Authority
KR
South Korea
Prior art keywords
image
markup file
dom tree
node
parent node
Prior art date
Application number
KR1020107025520A
Other languages
English (en)
Inventor
게라드 마르미게르
데이비드 로피아
조아퀸 피콘
프레더릭 바우초트
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110009675A publication Critical patent/KR20110009675A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Digital Computer Display Output (AREA)

Abstract

웹 브라우저 상에서 광고의 표시를 선택적으로 보장하는 방법 및 시스템이 개시되어 있으며, 상기 해석된 마크업 파일의 특정 표시 영역을 정의하고, 상기 해석된 마크업 파일의 DOM 트리를 획득하고 - 상기 DOM 트리는 적어도 하나의 부모 노드와 복수의 자식 노드를 포함하고, 각각의 노드는 상기 표시가능한 엘리먼트 중 적어도 하나와 연관되어 있음 - , DOM 트리 내에서, 상기 표시가능한 엘리먼트가 상기 특정 표시 영역의 적어도 일부분을 포함하고 있는 자식 노드들 세트를 식별하고, DOM 트리 내에서, 상기 자식 노드들 세트를 포함하는 제1 부모 노드를 식별하고, 상기 식별된 제1 부모 노드와 연관된 모든 표시가능한 엘리먼트를 마스터 이미지로 변환하고, 상기 마스터 이미지를 포함하는 제2 부모 노드를 생성하고, 상기 식별된 자식 노드들 세트를 삭제하고 상기 식별된 제1 부모 노드를 제2 부모 노드로 교체함으로써 상기 DOM 트리를 수정된 DOM 트리로 수정하는 것을 포함한다.

Description

웹 브라우저 상의 광고 표시를 선택적으로 보장하는 방법 및 시스템{METHOD AND SYSTEM TO SELECTIVELY SECURE THE DISPLAY OF ADVERTISEMENTS ON WEB BROWSERS}
본 발명은 일반적으로 데이터 처리에 관한 것으로, 보다 자세하게는 웹 브라우징을 위한 시스템 및 방법에 관한 것이다.
인터넷 상에서 많은 회사들의 비지니스 모델은 클라이언트 웹 브라우저 상의 광고 표시들에 대부분 의존한다. 이러한 광고를 차단 또는 스킵할 수 있는 솔루션의 출현은 수입의 주류원을 매우 위태롭게 한다.
광고는 많은 웹사이트 및 회사에 대한 주 수입원을 대표한다. 광고가 대규모로 거절되는 경우에 (그리고 심지어, 메이저 회사의 "타겟팅이 잘 된", 효과적 또는 정보적인 광고인 경우에도), 더 이상 컨텐츠 또는 서비스가 자유롭지 못하다. 지금 당장은, 대개 기술적으로 능숙한 사용자들만이 이러한 광고 차단 기술을 알고 있지만, 대중 시장의 웹 브라우저 내의 이러한 툴의 디폴트 통합은 비지니스 모델이 광고에 의존하고 있는 회사에 대해 거대한 손실을 야기시킬 것이다. 따라서, 웹 브라우저 상에 광고의 표시를 보장하고 오늘날의 디지탈 네트워크에서의 가능한 광고 차단(death)과 이들과 관련되어 앞으로 증가할 광고차단 능력을 회피하는 방법을 찾을 수 있는 것이 가장 중요해지고 있다. 실제로, 광고에 대한 완벽한 대응(shift)은 광고 차단 기술(소위 광고 차단기(adblocker) 또는 애드 차단기(ad blocker)라 불림)의 증가하는 이용에 의해 위협이 되고 있다.
광고는 웹 페이지 내에 내장된, 텍스트 영역, 정지 영상, 애니메이션 영상, 또는 심지어 비디오가 있다. 광고 청취자(일반화의 손실없이 뷰어 또는 사용자라 불림)의 일원이 이들 광고들 중 하나를 클릭함으로써 광고 하나를 선택할 때, 내장된 하이퍼텍스트 링크가 일반적으로 뷰어를 광고자의 웹 사이트로 안내한다("클릭 스루(click-through)" 프로세스).
점점더 고객들이 침입식 마케팅(intrusive marketing)에 피곤해 하는 것으로 나타난다. 몇몇 산업 회사(player)는 "성가시지 않고" "정보적인" 광고들에 투자하려는 시도를 하고 있지만, 고객들은 매우 짜증나는 광고에 의해 불만으로 가득차 있다. 실제로, 비침입식 텍스트 광고를 읽는 것은 간단하고 쉽지는 않다. 실제로, 광고는 종종 사용자들이 너무 침입적이라고 느끼는 플래쉬 또는 애니메이션 gif 배너들이고(팝업(pop-up), 팝-언더(pop-under) 등은 종종 원하는 컨텐츠를 가린다), 그래픽을 플래쉬하는 것은 페이지 어딘가 있는 실제 텍스트를 읽는 것을 매우 어렵게 만들어, 대부분의 시간에, 전달되는 광고가 적절치 못하게 되고(소위 타겟팅된 광고가 종종 실패함); 이들 광고는 잡음으로 읽는 사람을 귀찮게 만든다. 대부분의 시간에, 사용자의 타겟팅은 습관을 추적하고 프라이버시를 침입하는 것을 포함한다.
위의 모든 이유로, 점점더 사용자들은 소위 광고 차단기 (또는 애드 차단기)를 사용한다. 사용자의 관점에서, 광고 차단 이점은 보다 깨끗한 웹 페이지 보기, 더 낮은 자원 사용(대역폭), 및 소위 스피드 업(speeded-up)(많은 페이지들이 먼저 중요한 광고들을 로딩하도록 설계됨)이라 불리는 페이지 로딩을 포함한다. 당해 기술은 순수 텍스트 브라우저와 같은 웹 브라우저 상에서 광고를 제거 또는 스킵할 수 있는 많은 광고 차단 기술들, 팝업 차단기(또는 팝 언더 차단기), 광고 서버 URL의 블랙리스트, (광고 파일들이 로딩되는 것을 방지하기 위해 키워드에 기초한) 텍스트 필터링 툴, 스크립 차단기(script blocker), (특정 HTML 및 XHTML 엘리먼트를 숨기기 위한) CSS 룰의 사용 등을 포함한다.
광고 차단 기술은 단독으로 수반되지 않는다. 개인화된 웹 페이지를 구축하기 위한 추출 기술의 사용, RSS의 사용 및 매시업(mashup)의 사용도 또한 광고의 스킵을 유도한다. 개인화된 웹 페이지의 사용은 개인화된 페이지들 내에서 정밀한 컨텐츠 영역들을 추출하고 이들 추출된 컨텐츠를 모으는 것을 가능하게 한다. 그 뒤에, 사용자는 최초의 페이지를 다시 방문할 필요가 없고, 따라서, 있다 하더라도 광고를 스킵한다. 매우 정밀한 기술은 전체 페이지를 로딩하고 이들을 프레임들 및/또는 <DIV> 태그들로만 표시하여 원하지 않는 컨텐츠를 숨기는 것에 의지하고 있다. 비록 컨텐츠가 사용자에게 표시되지 않는 경우에도 이 마지막 능력은 또한 (광고자의 관점에서부터) 고유 방문자들의 수를 변경하지 않은 상태로 유지하는 결함을 제공한다. RSS 피드(RSS는 "Really Simple Syndication"를 나타냄)에서, 유사한 메카니즘이 동작한다. 실제로, RSS 피드의 출현은 더이상 데이터의 스톡(stock)이 아닌 데이터의 플로우인 인터넷의 특성을 심하게 변화시켰다. 이 RSS 모델에 따라, 컨텐츠 제공자가 피드들을 제어하는 것에 주목하는 것이 중요한데, 이는 컨텐츠 제공자가 RSS 피드들을 통하여 자신들의 가입자에게 무슨 컨텐츠를 제공할지를 선택할 수 있음을 의미한다. 또한, 최근 생겨난 메카니즘 덕분에, 어떠한 제한 없이도 사용자가 웹 컨텐츠의 부분들을 자유롭게 추출하는 것이 현재 가능하다. 즉, 웹 사용자는 병목현상이 걸린 페이지(많은 광고들을 포함한 홈 페이지 또는 포탈)를 더 이상 방문할 필요가 없다. 이 환경에서, 컨텐츠 제공자는 자신들의 비지니스를 모네타이즈(monetizing)하기 위한 선택이 거의 없는 원본 데이터(raw data)의 제공자로 축소될 수 있다. 예를 들어, 기술(종종 RSS 생성기라 불림)은 임의의 웹 페이지로부터 피드들을 추출할 수 있게 한다. 또 다른 기술은 RSS 피드들을 모으는 것 뿐만 아니라 이들을 결합할 수 있게 한다(RSS 리믹서 툴(Remixer tool)은 필터, 검색, 믹스 등을 가능하게 한다). 배포된 피드(syndicated feed) 내에 타겟팅된 광고들을 포함시키기 위한 몇몇 시도(광고는 RSS 아이템 또는 광고자가 미리 선택하였던 키워드들을 포함한 블로그 포스트에서 서브됨)가 있어 왔지만, (키워드 기반 또는 다른 기술을 수반하는) 텍스트 필터링도 또한 이러한 시도를 막을 수 있다. 마지막으로, 소위 매시업의 사용도 또한 온라인 광고에 대한 위협이 된다. API(Application Programming Interfaces) 덕분에, 애플리케이션 자체도 또한 결집될 수 있다. 그리고 특히, 광고는 컨텐츠의 리믹싱 동안에 제거될 수 있다.
반대측(즉, 광고 표시를 보장하는 측)에서는 이용가능한 기술적 솔루션이 거의 없는 것으로 보여진다. 알려진 접근 방식은 URL의 블랙리스트를 우회하기 위하여 URL의 어드레스 스크램블링 기술로 이루어져 있다. 이 솔루션은 (피어 기반 안티스팸 기술(peer-based anti-spam technique)처럼) 가능한 협업적 필터링의 반발력 때문에 항상 효과적인 것은 아니다. 무작위 어드레스의 사용도 또한 제약을 유도한다(학습 능력). (예를 들어, Gecko에서) 일부 버그로 인해, 일부 웹 사이트는 SCRIPT 및 IMG 태그들에서 chrome://어드레스에 액세스하여 브라우저 상에 설치된 애드온(add-on)을 광고 차단하는 것을 검출할 수 있다. 그 뒤에, 이들은 클라이언트를 서브하는 것을 거절할 수 있지만, 이들 버그는 점진적으로 고정되고, 광고 차단기는 이들 버그에 대한 회피 방법을 실행한다.
이 일반적인 기술 접근방식을 제쳐두면, 오직 비기술적 방법만이 존재하게 된다. 예를 들어, 허가형 마케팅 방법(permission marketing method)이 시험되고 있지만(실제로, 광고가 사용자를 타겟팅하는 대신에 사용자가 광고를 타겟팅할 수 있음), 이들 방법은 대규모 시장에 잘 적용되지 못한다. 보다 잘 각인되는 광고의 형태로 전달하기 위해 사용자 프로파일링에 기초한 다른 방법이 광고자 또는 이들의 파트너들에 의해 시도되고 있지만, 이 또한 프라이버시에 대한 위협을 받는다. 광고 표시를 보장하는 신뢰성있는 솔루션이 나오지 않는다면, 광고 포맷들은 소비자의 관심을 계속 유지하고 짜증 및 "청취 중단" 양쪽 모두를 최소화하는 것을 돕는 콘텍스츄얼, 상호동작, 허가 기반의 그리고 타겟팅된 메시징으로 진화할 수 있다. 몇몇 컨텐츠 또는 서비스 공급자는 또한, 컨텐츠 및 서비스를 사용자에게 제공하려 애쓰는 사람들로부터 수입을 얻고 있음을 주장함으로써, 광고 차단 기술의 사용에 의해 수반되는 손실에 대해 자신들의 사용자에게 경고하려 시도한다. 종종, 이들은 자신들의 웹 사이트를 방문하기 위한 특정한 라이센스 협의를 요구한다. 결론적으로, 이들 (비기술적인) 방법 중 어떤것도, 광고 차단 기술 및/또는 RSS 피드의 사용 및/또는 개인화된 웹 페이지의 사용에 대한 대책으로서 효과적으로 역할을 하고 궁극적으로 수입의 주류들을 보장하는 것을 성공하지 못한다.
웹 브라우저 상에서, 보다 일반적으로는 마크업 파일 뷰어들에 대하여 광고의 표시를 보장할 수 있는 방법에 대한 필요성이 시급하다.
본 발명의 일 실시예에 따르면, 첨부된 독립항 1에 따라, 광고 표시를 보장하는 방법이 제공된다.
본 발명의 다른 실시예에 따르면, 첨부된 독립항 11에 따라 광고 표시를 보장하는 시스템이 제공된다.
개요로서, 본 발명의 실시예들은 해석(interprete) 또는 실행된 마크업 파일 내에서 관심이 있는 하나 또는 복수의 특정 영역들의 표시를 보장하는 수개의 기술 - DOM 트리를 재기록하는 기술; (OCR과 같은) 이미지 인식 및 텍스트 분석 기술의 기술적 제약에 영향을 주는 이미지 생성 및 수정의 이용; 마크업 파일의 일부 수정된 부분에 대하여 손실될 수 있었던 사용자 상호작용성을 보존할 수 있는 스크립트 언어 코드의 이용 - 의 유용한 조합을 이용한다.
많은 이점들 중에서, 본 발명의 일 실시예는 대부분의 기존 이미지 인식 기술들을 극복하고, 대부분의 기존 의미(semantics) 및 텍스트 분석 기술(이 기술은 광고를 차단 또는 스킵하는데 가능하게 이용될 수 있음)을 극복한다. 즉, 본 발명의 실시예들은 (이미지들에 대해 비효과적인) 시맨틱스 기술을 극복하고 이미지 인식 기술들의 제약(더 큰 이미지들 내에 둘러싸인 광고는 검출가능하지 않음)을 이용하기 때문에 광고의 표시를 보장하게 할 수 있다. 그러나, 또한 광고가 단독으로 포함되는 것도 강하게 강조되는데: 본 발명의 일 실시예는 (텍스트 또는 그래픽과 같은) 하나 또는 복수의 특정 영역들이 보장될 필요(표시된 데이터의 무결성을 보전할 필요성)가 있는 모든 상황을 해결한다. 이는 추가로 자세히 설명될 것이다.
본 발명의 일 실시예의 다른 이점은 또한 웹 브라우저에 대하여 악성 코드(만약 있다면)의 어떠한 실행도 방지하는 능력을 갖는데 있다. 실제로, 본 발명은 악성 소프트웨어에 대항하는 관련 보호를 제공한다. 오늘날 인터넷은 위험이 만연해 있으며 위험들 중 하나가 악성 소프트웨어 코드이다. 웹 브라우저로 웹 페이지를 방문한 사용자는 의도하지 않게 악성 코드를 실행시켜, (즉각적으로 또는 가까운 미래에) 자신의 로컬 머신을 위험에 빠지게 한다. 일반 악성 코드는 바이러스, Trojans, 최근 다운로딩 및 설치한 키로거들, 스파이웨어 등을 포함한다. 불법용으로 원격적으로 이용되지 않는다 하더라도, 개인 및 금융 데이터는 위험 상태에 있으며, 하드웨어 디바이스도 또한 물리적으로 손상받을 수 있다. 설명된 방법을 구현하는 2-티어(two-tier) 아키텍쳐는 브라우저 측(웹 브라우저는 어떠한 신뢰성없는 코드를 갖는 마크업 페이지를 수신하지 않지만 수정된 마크업 파일들을 수신함) 상에서 악성 코드 실행을 방지하게 할 수 있고, 즉각적으로 종료시키며, 멀웨어 및 광고를 묶어 두는데: 악성 코드는 비지니스 관계의 복잡한 구조로 인해 온라인 광고를 통하여 대량으로 유입(악성 컨텐츠의 합법적인 광고 전달 스트림으로의 유입)된다고 한다. 본 발명의 일 실시예는 광고 표시를 보장하면서 동시에 악성 코드 실행을 방지한다. 컨텐츠 공급자는 자신의 광고를 보장하는 게런티를 갖는 한편, 웹 브라우저는 어떠한 악성 코드도 실행하지 않는 게런티를 갖는다. 이것은 많은 관심있는 비지니스 기회들을 여는 윈윈(win-win) 동작이다. 결론을 내리면, 잠재적인 악성 코드를 포함하는 마크업 파일의 부분들은 개시된 기술을 이용하여 제거될 수 있다(안전하지 않은 마크업 파일은 더 안전한 마크업 파일로 변환될 수 있다).
본 발명의 실시예들은 또한 최초의 마크업 파일 내에서 인코딩된 사용자 상호작용성을 보존하도록 할 수 있다. 적응된 스크립트 언어 코드(adapted scripting language code)를 이용하여, 사용자 상호작용성이 실제로 일부 영역에 대하여 가능하게 유지될 수 있고, 다른 특정한 영역에 대해 금지(존재하지 않게 함)될 수 있다. 이 변형예는 변형예가 사용자 상호작용성을 통하여 제공하는 제어 때문에 유용할 수 있다. 상호작용성은 변경되지 않은 상태로 남겨질 수 있거나(예를 들어, 사용자는 여전히 컨텐츠를 복사하여 붙여넣기 할 수 있을 것이다) 또는 부분적으로 변경될 수 있거나 또는 완전히 변경될 수 있다. 이것은 높은 유연성을 제공한다.
(2-티어 아키텍쳐를 이용하는 경우) 다른 이점은 표준 브라우저만을 필요로 한다는 것이다. 이는 클라이언트 측 상에 어떠한 추가적인 플러그인, 컴포넌트 또는 로컬 소프트웨어도 요구하지 않는다. 웨웹 웹 브라우저 상단에서는 추가적인 소프트웨어를 필요로 하지 않는다. 따라서, 본 개시는 브라우저 수정없이(수정되지 않는 브라우저의 이용) 동작하는 제1 접근 방식이다. 본 발명은 오늘날의 브라우저에 직접 이용될 수 있으며, 따라서, 적응성이 즉각적일 수 있다.
또 다른 이점은 본 발명은 빠르고 저렴한 관심의 액세스를 가능하게 한다는 것이다. 본 발명은 웹 브라우저에 대해 들어오는 마크업 파일의 복잡도 및 가중도를 감소시킨다(본 발명은 코드 엘리먼트 내에 포함된 가능성있는 에러 또는 버그들을 감소시킨다). 오늘날, 많은 디바이스들(이동 전화기, 태블릿 PC들 등)은 제한된 CPU 능력들을 갖고 있다. 수정된 마크업 파일은 대부분 (악성이 아닌 스크립트 언어 코드에 더하여) 이미지 파일을 포함하고 있기 때문에, 상기 디바이스들 상에서 구동하는 브라우저 또는 뷰어들만이 대부분 디스플레이 이미지를 표시할 수 있는 것을 필요한다. 따라서, 본 발명은 제한된 컴퓨팅 및 메모리 자원들을 갖는 이동 디바이스들에 대한 원격 브라우징을 가능하게 한다.
본 발명의 일 실시예에 따르면, 첨부된 청구항 9에 따른 컴퓨터 프로그램 및 첨부된 청구항 10에 따른 컴퓨터 판독가능 기록 매체가 마지막으로 제공된다.
바람직한 실시예들은 첨부된 종속항들에 정의된다. 본 발명의 추가의 이점들은 도면 및 상세한 설명의 검토시 당해 기술 분야의 숙련된 자에게 분명해 질 것이다. 어떠한 추가적인 이점들도 본 발명에 포함되는 것으로서 본다.
본 발명에 따르면, 대부분의 기존 이미지 인식 기술들을 극복하고, 대부분의 광고 차단 기술을 극복할 수 있다.
다음에 오는 도면을 참조로 본 발명의 실시예들을 설명한다.
도 1은 마크업 파일의 스크립트 언어 코드 및 표시가능한 엘리먼트를 나타낸다.
도 2는 마크업 파일 및 마크업 파일의 연관된 DOM 트리를 나타낸다.
도 3은 DOM 트리 및 DOM 트리의 연관된 노드들의 표시도를 제공한다.
도 4는 DOM 트리를 가져오는 제1 변경예를 나타낸다.
도 5는 DOM 트리를 가져오는 제2 변경예를 나타낸다.
도 6은 여러 서브이미지 발생 모드를 나타낸다.
도 7은 선택적인 2-티어 아키텍쳐를 나타낸다.
도 8은 프록시 상의 동작을 나타낸다.
도 9는 아키텍쳐 옵션들을 나타낸다.
설명을 용이하게 하기 위하여, 한 도면 내의 엘리먼트를 식별하는 임의의 도면 부호는 임의의 다른 도면들 내의 동일한 엘리먼트를 나타낼 것이다.
다음에 오는 텍스트는 광고 차단 환경에서의 세부적인 실시예를 나타내지만, 이 특정 도메인으로 제한되지 않으며, 컴퓨터 보안(악성 코드 제거, 안티크롤링(anti-crawling) 툴 등), 인터넷 접근가능성, 컨텐츠 개인화 및 편집, 데이터 변환(data conversion), 서비스 전달에 관한 소프트웨어(SaaS; Software as a Service delivery), 디지털 권한 관리(Digital Rights Management), 트러스티드 컴퓨팅(TC; Trusted Computing) 등과 같은 도메인으로 동등하게 확장됨을 알아야 한다.
정의로서, "DOM" 표현은 문서의 논리 구조를 의미하는 방식으로서 이해되어진다. 따라서, 상기 표현은 "논리 구조" 또는 "계층 구조" 또는 "구조"와 같은 표현으로 대체될 수 있다. "DOM 트리"는 예를 들어, "논리 구조의 트리"로 읽혀질 수 있다. 간결성 및 명료성을 위하여, "DOM" 및 "DOM 트리"와 같은 표현을 이용한다.
도 1은 마크업 파일의 스크립트 언어 코드 및 표시가능한 엘리먼트를 나타낸다.
도 1을 참조하여 보면, 도 1은 본 개시에 따라 변경되고 이용되는 오브젝트를 나타낸다.
도 1은 표시가능 엘리먼트들(110)의 세트 및 스크립트 언어 코드(120)를 포함하는 마크업 파일(100)을 나타낸다.
마크업 파일(100)은 일반적으로 바이너리 파일이지만 포맷되어진 특성으로 존재할 수 있다. 마크업 파일은 일반적으로 네트워크를 통하여 전송되거나 및/또는 메모리 내에서 국부적으로 검색되는데, 이 파일은 국부적으로, 전체적으로, 또는 부분적으로 생성될 수 있다. 바람직한 실시예에서, 마크업 파일(100)은 HTML 또는 PHP 또는 XML 파일이다. 실제로 웹 페이지들은 (표시가능한) 컨텐츠 및 명령 또는 (메타 정보, 하이퍼링크 어드레스, JavaScript와 같은) 내장된 정보를 포함한다.
특정 실시예들에 따르면, 표시가능한 엘리먼트(110)의 결정은 상대 결정 또는 절대 결정으로 간주될 수 있다. 결정은 뷰어에 의한 해석으로부터 일어나는 경우에 상대 결정이라 한다. 예를 들어, HTML 마크업 파일의 표시가능한 엘리먼트들의 세트는 웹 브라우저(또는 웹 브라우저 인스턴스) 내의 상기 마크업 파일을 로딩 및 해석함으로써 결정될 것이다. 시장에 존재하는 웹 브라우저들에 의해 수행되는 서로 다른 해석들 간에 수렴이 존재하더라도, 서로 다른 웹 브라우저들이 서로 다른 해석(그에 따라, 서로 다른 표시가능 엘리먼트들의 세트)을 일으킬 수 있는 것으로 인정된다. 이러한 점에서, 해석은 상대 해석으로 간주된다. 다른 접근 방식은 웹 브라우저들의 서로 다른 거동들을 공통 렌더링 모드(common rendering mode)로 통합하는 것이다(절대 해석). 간단히 말하면, 이들 표시가능한 엘리먼트들은 이 최종 디스플레이에 유용하거나 또는 사용자의 눈에 도달하는 모든 엘리먼트들이다. 따라서, 표시가능한 엘리먼트들(110)은 이미지, 비디오 영역, 및 텍스트 영역과 같은 엘리먼트들일 수 있다. "표시가능한 엘리먼트" 표현은 궁극적으로 사용자에 의해 보여질 엘리먼트를 포함하는 것으로 의도된다. 그 결과, 이 표현은 설명된 방법에 의해 수행된 동작 이후 발생할 수 있는 (필터링 또는 마스킹과 같은) 가능한 추가의 동작을 포함하는 케이스를 포함한다.
스크립트 언어 코드(120)에 관하여 특정한 실시예에 따르면, 표현 "스크립트 언어 코드"는 마크업 파일(100) 내에 포함된 소프트웨어 코드의 모든 명령 또는 라인들을 지정하는 것으로 인정된다. 세부적으로, 스크립트 언어 코드는 상기 마크업 파일을 해석하기 위하여/해석함으로써 머신에 의해 이해가능한 명령을 형성하는 모든 문자 슈트(suite)를 포함한다. 즉, 스크립트 언어 코드는 (예를 들어, 스크립트 또는 메타 데이터와 같은) 마크업 파일의 뷰어 또는 최종 유저에 의해 직접 보여지는 것으로 의도되지 않는 모든 데이터를 포함한다; 그러나, 추가적으로, 스크립트 언어 코드는 또한 표시가능한 엘리먼트들(예를 들어, <DIV> HTML 태그들)의 표시에 유용한 모든 데이터도 포함한다. 스크립트 언어 코드(120)는 종종 마크업 파일 내에 포함된다(또는 마크업 파일과 연관되어 추가로 검색될 수 있다). 코드 엘리먼트들은 일반적으로 마크업 파일 내에 포함되지만, 항상 그러한 것은 아니다. 실제로, (Ajax와 같은) 최근 프로그래밍 기술은 코드 프로그램의 동적 검색을 이용할 수 있다. 그 결과, 일부 상황에서, 마크업 파일 내에 최초에 포함된 코드 엘리먼트들의 세트와 동적으로 연관되어진, 코드 엘리먼트들의 피스들을 검색하는 것이 필요할 수 있다. 예를 들어, 브라우저에서의 사용자 동작은 (서버로부터의 새로운 명령들을 검색하거나 또는 로컬 자원을 액세스함으로써; 예를 들어, 외부 파일들의 전부 또는 일부를 포함하도록 XML 파일들에 대한 능력을 정의하는 "Xinclude"를 통하여) 마크업 파일의 추가 수정을 수반할 수 있다. 이 이유로, 첫번째로 마크업 파일을 해석하는 것이 필요하다. 또한, 마크업 파일을 구문분석하는 것은 DOM 트리를 얻는 것을 가능하게 하는데, DOM 트리는 본 발명의 실시예들에 따라 조작 및 수정될 것이다. 이 마지막 사안은 다음 섹션에서 설명된다.
이하 도 2를 참조하여 보며, 도 2는 해석된 마크업 파일(200), 표시가능 엘리먼트(201), DOM 트리(210) 및 DOM 트리의 특정 노드(211)를 보여준다.
소위 문서 오브젝트 모델(DOM; Document Object Model)은 오브젝트로서 (XML 또는 HTML와 같은) 엘리먼트들을 참조하는 방법이다. 이는 HTML 또는 XML 및 관련 포맷들을 나타내기 위한 플랫폼 독립 및 언어 독립 표준 오브젝트 모델이다. 특히, 문서 오브젝트 모델은 JavaScript가 포함하고 있는 HTML 페이지들을 참조(see)하는 방법이다. DOM은 문서의 논리 구조와, 문서가 액세스되어 조작되는 방법을 정의한다. 따라서, 문서의 논리 구조는 소위 DOM 트리에 의해 정의되어진다. DOM 트리의 부분들은 노드로서 알려져 있다. 즉, DOM은 노드로서 정의되는 텍스트, 속성 및 엘리먼트를 갖는 트리 구조(노드 트리)로서 문서를 제공한다. 그 후, DOM 트리는 노드들의 집합체로서 보여질 수 있는데, 각각의 노드는 마크업 파일의 언어 스크립트 파일의 부분집합에 대응한다(그 후, 노드는 스크립트/프로그램, 스크립트/프로그램의 프래그먼트, 또는 이미지와 같은 표시가능한 엘리먼트를 포함하는 임의의 또 다른 오브젝트를 포함 또는 대응할 수 있다). 노드 트리는 노드 세트 및 노드들 사이의 연결부로서 XML 문서를 보여준다. DOM에 따르면, XML 문서 내의 모든 것이 노드이다. 전체 문서가 문서 노드이다. 모든 XML 엘리먼트는 엘리먼트 노드이다. XML 엘리먼트 내의 텍스트는 텍스트 노드이다. 모든 속성은 노드 속성이다. 코멘트(comment)는 코멘트 노드이다.
마크업 파일의 DOM 트리를 얻기 위하여, 마크업 파일 파서(parser)가 요구된다. 실제로, 파서는 문서를 컴퓨터의 메모리 내에 로딩시킨다. 일단 문서가 로딩되면, 문서 데이터는 DOM을 이용하여 조작될 수 있는데 이 DOM은 XML 문서를 트리로서 처리한다. 마이크로소프트(Microsoft)의 XML 파서(COM 컴포넌트)와, Mozilla 브라우저들에 이용되는 XML 파서 사이에 몇몇 차이가 있지만, 기술된 방법 및 시스템은 모든 브라우저들 및 파서에 적용한다.
마크업 파일(200)은 표시가능 엘리먼트(201)를 포함한다. DOM 트리(210)는 마크업 파일(200)의 DOM 트리이다. DOM 트리(210)는 노드 세트를 포함한다. DOM 트리(210)의 특정 노드(211)는 마크업 파일(200)의 표시가능 엘리먼트(201)에 대응한다.
도 2에서, 마크업 파일(200)은 웹 페이지로서 나타나 있다. 표시가능 엘리먼트(201)는 광고 이미지로서 나타나 있다. 도 2에 나타낸 바와 같이, DOM 트리(210)는 복수의 (부모 및 자식) 노드를 포함한다. 특정 노드들(211)은 <IMG> 태그를 포함한다. 참조되어지는 이미지는 광고 이미지이다.
도 2는 단지 일례를 제공하는 것임을 강조한다. DOM 트리 및 관련 마크업 파일들은 훨씬 더 복잡할 수 있다. 노드들에 대응하는 표시가능 엘리먼트들은 정지 영상, 애니메이션 영상, 플래시 또는 Shockwave 오브젝트들, 비디오 오브젝트, 텍스트 영역 등과 같은 엘리먼트들일 수 있다.
이하, 도 3a 및 도 3b를 참조하여 본다. 도 3a는 DOM 트리 노드들에 대응하는 복수의 표시가능 엘리먼트들을 포함하는 마크업 파일의 일례를 나타내는 도면이다. 도 3b는 (앞선 도 2에서 전개된 예들에 뒤이어서) 고려되고 있는 마크업 파일에 대응하는 DOM 트리를 나타내는 도면이다.
DOM 트리에서, 상단 노드를 루트(root)라 부른다. 루트를 제외한 모든 노드는 정확히 하나의 부모 노드를 갖고 있다. 노드는 임의의 수의 자식 노드를 가질 수 있다. 리프(leaf)는 자식 노드가 없는 노드이다. 형제(sibling) 노드는 동일한 부모 노드를 갖는 노드들이다. 각각의 노드는 이름, 값 및 타입(엘리먼트, 속성, 텍스트, 코멘트, 문서)을 갖는다. 주어진 노드에 대해, 다른 관련 노드들(자식 노드, 부모 노드, 첫번째 노드, 마지막 노드, 다음 형제 노드(nextSibling), 이전 형제 노드(previousSibling))를 얻는 것이 가능하다.
도 3a와 도 3b 양쪽 모두에서 전개된 예에서, 노드(3000)는 루트 노드이다. 노드들(3100, 3200, 3300, 3400)은 루트 노드(3000)의 자식 노드이다. 노드들(3310, 3320)은 노드(3300)의 자식 노드이다. 노드들(3321, 3322)은 노드(3320)의 자식 노드이다. 노드들(3100, 3200, 3300, 3400)은 형제 노드들이다. 노드들(3310, 3320)은 형제 노드들이다. 노드들(3321, 3322)은 형제 노드들이다.
도 2에 나타낸 바와 같이, 특정 노드(3321)는 광고 이미지를 포함한다. 제시된 도면은 단지 일례를 제공하는 것임을 강조한다. 표시가 보장되어지는 복수의 영역들이 있을 수 있다. 이들 영역은 해석된 마크업 파일 내의 어디에서나 위치될 수 있다.
이하, 도 4a 및 도 4b를 참조하여 보면, 도 4a 및 도 4b는 개시된 방법 및 시스템의 적용에 의해 수정이 일어난, 앞의 도 3의 엘리먼트들을 나타낸다.
파서(도 1의 설명을 참조할 것)는 노드 트리를 가로지르고, 노드들 및 노드들의 속성 값에 액세스하고, 노드들을 삽입 및 삭제하고, 노드 트리를 XML로 되변환시키기 위한 모든 필요한 기능들을 지원한다. 노드들을 얻고 설정하고 제거하고 바꾸고 생성하고 추가하고 복제하는 것이 가능하다. DOM은 임의의 수정들을 허용한다. 프로그래머들은 문서들을 만들고 이들의 구조를 네비게이션하고 엘리먼트들 및 컨텐츠를 추가, 수정 또는 삭제할 수 있다. 본 발명의 실시예들은 해석 또는 실행된 마크업 파일 내에서 관심이 있는 특정 영역들의 표시를 보장하기 위해 이러한 메카니즘을 이용한다.
본 발명에 따르면, 하나 이상의 표시가능한 엘리먼트들을 포함하는 해석되어진 마크업 파일의 DOM 트리를 수정하는 방법이 개시되어 있으며, 상기 방법은, 상기 해석되어진 마크업 파일의 특정 표시된 영역을 정의하는 단계와; 상기 해석되어진 마크업 파일의 DOM 트리를 얻는 단계 - 상기 DOM 트리는 적어도 하나의 부모 노드와 복수의 자식 노드를 포함함 - 와; 각각의 노드가 상기 표시가능한 엘리먼트들 중 적어도 하나와 연관되는 단계와; 표시가능한 엘리먼트가 상기 특정 표시된 영역의 적어도 일부분을 포함하는 것인 상기 자식 노드의 세트를 DOM 트리 내에서 식별하는 단계와; 상기 자식 노드들의 세트를 포함하는 제1 부모 노드를 DOM 트리에서 식별하는 단계와; 상기 식별된 제1 부모 노드와 연관된 모든 표시가능한 엘리먼트들을 마스터 이미지로서 변환하는 단계와; 상기 마스터 이미지를 포함하는 제2 부모 노드를 생성하는 단계와; 자식 노드들의 상기 식별된 세트를 삭제하고 식별된 제1 부모 노드를 제2 부모 노드로 교체함으로써 DOM 트리를 수정된 DOM 트리로 수정하는 단계를 포함한다. DOM 트리 또는 노드의 조작은 얻고 검색하고 삽입하고 바꾸고 삭제하고 첨부하고 제거하고 정규화하고 생성하고 복제하고 읽고 인에이블하고 디스에이블하고 클릭하고 선택하고 클리어하고 배치(populate)시키고 전파하고 스웹하는 등과 같은 액션들 또는 커맨드들을 포함하는 것으로 의도된다. 노드들을 조작하는 것은 무효 트리 구조(선택적 유효화 툴 또는 단계)를 구축할 수 있지만 속도 및 효율성은 문서 트리와 직접 작업함으로써 얻어지기 때문에 까다로울 수 있다.
도 3에 전개된 예에서는, 해석된 마크업 파일의 특정 표시 영역(광고 이미지를 포함하는 노드(3321)(<IMG> 노드))가 정의된다. 표시가능한 엘리먼트들이 상기 특정 표시 영역을 포함하는 자식 노드 세트가 DOM 트리 내에서 식별되며: 자식 노드들(3320, 3300)의 세트는 광고 이미지를 포함한다. 상기 자식 노드 세트 중 적어도 하나의 노드를 포함하는 제1 부모 노드 - 노드(3320) - 가 DOM 트리 내에서 식별된다(노드(3320)는 노드(3321 및 3322)의 부모 노드인 한편, 노드(3320)는 노드(3300)의 자식 노드임을 알아야 한다). 식별된 제1 부모 노드(3320)와 연관된 표시가능한 엘리먼트들은 (마스터) 이미지로 변환된다. 상기 (마스터) 이미지를 포함하는 제2 부모 노드(4000)가 생성된다. 이에 따라 그 후, DOM 트리가 수정되는데, 자식 노드들(3321, 3322 및 3320)은 삭제되고 제2 부모 노드(4000)로 교체된다).
"replaceChild()" (및/또는 "nodeValue" 속성(property) 및/또는 "replaceData()" 및/또는 "setAttribute()" 등)과 같은 방법을 이용하여 노드 내의 데이터를 검색하거나 또는 바꾸거나 또는 첨부할 수 있다(또는 전체 노드를 수정할 수 있다). 이러한 방법들은 큰 유연성을 가능하게 하는 많은 파라미터들을 제안하여, 첫번째 <X> 엘리먼트를 새로운 <Y> 엘리먼트로 바꿀 수 있게 한다.
생성된 이미지는 사용자에게 표시된 것을 캡쳐링한다. 이는 몇몇 기술을 이용하여, 예를 들어, 비디오 버퍼에 액세스함으로써(대부분의 시간에, 오퍼레이팅 시스템 자체는 이러한 특성을 제공함) 또는 브라우저/구문 분석부에 의해 또는 심지어 Java API들(예를 들어, 클래스 JEditorPane 및 Swing HTML 패키지 확장)에 의해 제공되는 기능들에 의해 실현될 수 있다.
DOM 이미지 오브젝트는 내장된 이미지를 나타낸다. HTML 문서 내의 <IMG> 태그의 각각의 경우에 대해, 이미지 오브젝트를 생성한다. 이미지 오브젝트 속성은 다음과 같다: align(주변의 텍스트에 따라 이미지를 정렬하는 방법을 설정 또는 리턴), alt(브라우저가 이미지를 보여줄 수 없다면 표시되어질 대체 텍스트를 설정 또는 리턴), border(이미지 주변에 대한 경계를 설정 또는 복귀), complete(브라우저가 이미지를 로딩하는 것을 완료하였는지 여부를 설정 또는 리턴), height(이미지의 높이를 설정 또는 리턴), hspace(이미지의 좌측 및 우측 상의 화이트 스페이스(white space)를 설정 또는 리턴), id(이미지의 id를 설정 또는 리턴), isMap(이미지가 서버측 이미지 맵인지 여부를 리턴), long Desc(이미지의 디스크립션을 포함하는 무선에 대한 URL을 설정 또는 리턴), lowsrc(이미지의 낮은 해상도 버전에 대한 URL을 설정 또는 리턴), name(이미지의 이름을 설정 또는 리턴), src(이미지의 URL을 설정 또는 리턴), usemap(클라이언트측 이미지 맵의 사용맵 속성의 값을 설정 또는 리턴), vspace(이미지의 상단 및 하단부의 화이트 스페이스를 설정 또는 리턴), width(이미지의 폭을 설정 또는 리턴).
도 4b에 나타낸 바와 같이, 수정된 DOM 트리는 이때, 노드(3300)의 자식 노드(3310) 및 노드(3300)의 새로운 자식 노드(4000)에 더하여 형제 노드들(3100, 3200, 3300, 3400)를 포함한다. 추가의 이미지 처리 단계들을 이후 설명한다.
이하, 도 5a 및 도 5b를 참조하여 보면, 도 5a 및 도 5b는 개시된 방법의 적용에 의해 추가의 수정을 나타낸다. 이때, 새로운 노드(5000)가 생성된다. 도 5a는 노드(3300)의 컨텐츠, 즉 앞의 도 4a 및 도 4b의 노드(4000)와 노드(3310)의 컨텐츠를 캡쳐링하였던(마스터) 이미지를 노드(5000)가 포함하고 있음을 보여준다. 도 5b는 DOM 트리의 대응하는 재기록을 보여준다.
제안된 예에서, 도 5a 상의 노드(3300)에 대응하는 (마스터) 이미지의 표면은 도 4a의 노드(3320)에 대응하는 앞의 이미지의 표면에 비해 훨씬 우수하다. 이하, 이러한 확장 효과를 설명한다. 첫번째로, 노드(3321)에 대응하는 광고 이미지의 포괄적인 데이터(comprehensive data)가 도 5b의 훨씬 더 큰 표면 내에 그려지지며 - 이미지 매칭 기술은 아마도 실패할 것임(다음 섹션의 설명을 참조할 것) -, 두번째로, 노드(3300)의 가능성있는 악성 코드가 제거되고 악성이 아닌 정지영상으로 바꾸어지며, 세번째로, 고려되어진 노드 내에서 인코딩된 사용자 상호작용성이 제거된다(도 8과 관련된 섹션에서 상호작용성을 보존하는 방법 및 보존하는 이유를 설명할 것이다).
DOM 트리의 일반적인 계층 구조는 마크업 파일의 "image freezing"에 의한 구속조건(constraint)을 수반하며: 상기 "고정(freezing)"은 수직 방향으로 및/또는 수평방향으로만 전파할 수 있는 것으로 인정된다. (러시아 인형의(Russian doll)) 구조는 매우 복잡할 수 있고 매우 많은 수의 노드를 수반할 수 있다. 제안된 예에서, 노드(3300)와 노드(3400)는 더 큰 이미지로 합쳐질 수 있거나; 또는 3개의 노드(3100), (3200) 및 (3300)가 단일의 이미지로 합쳐질 수 있거나; 또는 심지어 전체 루트 노드(3000)를 단일의 이미지로 다시 합쳐질 수 있다.
이하 도 6을 참조하여 보면, 도 6은 다양한 선택적 이미지 생성 모드들을 나타낸다. 도 6a, 도 6b 및 도 6c는 노드(3300)와 이미지들(600, 610, 620, 630, 6400, 6401, 6402, ... 6265)을 보여준다.
도 6a는 특정 실시예에 따라 (점선으로 나타내어진) 단일의 이미지(600)가 생성되는 경우를 나타낸다. 단일의 (마스터) 이미지(600)는 자신들의 자식 노드들을 포함한 노드들(3300)의 표시가능한 엘리먼트의 전체값을 나타내는데, 이 이미지는 고려되어진 노드에 관한 "배경" 이미지로서 고려될 수 있다.
도 6b는 다른 실시예에 따라 표시가능한 엘리먼트들이 복수의 서브이미지들(610, 611, 612)로 변환되는 경우를 나타낸다. 즉, 이미지(600)는 복수의 서브 이미지들로 추가로 분할될 수 있다("이미지 매핑"은 최초본(original)으로부터 얻어진다). 이는 표시가능한 엘리먼트들의 최초 배열에 일치(복제)하지 않는 서브 이미지들의 배치를 얻는데 중요할 수 있음을 이해한다. 즉, 현재 이미지 생성 모드는 (마크업 파일의 표시가능한 엘리먼트의 외견상 디스플레이 구조와 일치하지 않는 이미지 매핑을 가짐으로써) 기초적인 DOM 트리 구조를 복제하지 않는다는 것으로부터 이익을 얻을 수 있다. 이는 광고 차단(또는 필터링) 기술에 대항하는 제안된 방법 및 시스템의 견고성을 강화한다. 도 6b 상에서 볼 수 있는 바와 같이, 이미지(610, 620, 630)는 DOM 트리의 기초적인 구조에 대응하지 않는다.
도 6c는 표시가능한 엘리먼트들이 매우 많은 수의 서브 이미지들(620, 621, 622, 623, ...)로 변환되고 - 결국 무작위성(계속 변하고 복잡한 매핑)을 수반함 -, 이들 이미지가 인접하거나 또는 겹쳐진 이미지들이 되는 추가의 실시예를 나타낸다. 실제로, 서브 이미지들 사이의 오버랩이 가능하게 존재하며 심지어 오버랩이 원하는 상태이기도 한다.
특정 실시예에 따르면, 컨볼루션 연산(convolution operation), 모폴로지 연산(morphological operation), 기하학적 연산(geometric operation), 히스토그램 연산(histogram operation), 알파 합성 연산(alpha compositing operation)등과 같은 연산들에 의해 이미지(600) 또는 생성된 서브이미지(610, 611, 620, 621, 622...) 중 임의의 이미지를 추가로 변형 또는 수정할 수 있다. 본 발명의 일 실시예의 이점은 이미지 인식 툴(패턴 매칭, 에지 포인트 등)뿐만 아니라 텍스트 분석 툴(시맨틱스, OCR 등)을 극복한다는 것이다. 예를 들어, 각각의 생성된 이미지 또는 서브 이미지는 크롭 처리(cropped), 블러드 처리(blurred), 드문 포맷으로 인코딩, 블랙 및 화이트 이미지로 변환, 왜곡 처리 등을 받을 수 있다. 또한 잡음도 이미지 또는 서브이미지에 추가될 수 있다. 마크업 파일의 표시가능한 엘리먼트들로부터 유도되는 이미지 또는 서브이미지들에 대한(리사이징, 분할, 스플릿, 파티션, 맞추기(gathering), 그룹화(grouping), 왜곡, 노이징(noising), 개별화(discretizing), 리샘플링(resampling), 스크램블링, 그레이스케일 처리(greyscaling) 등과 같은) 설명된 동작은 많은 방식으로 결합될 수 있고, 상기 동작들은 가능한 광고 차단 기술에 대항하는 제안된 메카니즘의 견고성을 목표로 함을 이해한다. 구체적으로, 특정 실시예에 따르면, 위의 동작들은 표시가능한 엘리먼트 전체에 또는 이들 표시가능한 엘리먼트들의 서브세트에 선택적으로만 적용될 수 있다. 아직까지는, 마지막 사용자에 대한 가독성과, 결과적인 이미지 및/또는 서브이미지들을 분석 및 차단하는 더 큰 난이성 간에 타협점을 찾아야 한다. 가독성 스코어 시스템은 이들 동작을 수행하는 것을 도울 수 있다.
도 6a 상에서, 노드(3300)의 표시가능한 엘리먼트들은 점선으로 표시된 이미지(600)로 렌더링된다. 본 발명의 선택적인 특정 실시예에 따르면, 도 6b 및 도 6c는 다양한 서브 이미지 생성 모드를 나타낸다. 실제로, 마크업 파일의 표시가능한 엘리먼트는 많은 방식으로 하나(도 6a) 또는 복수의, 즉 서브 이미지들(도 6b 및 도 6c)로 변환된다. 바람직한 실시예에서, 단일의 이미지(600; 도 6a)를 생성하는 것은 광고의 표시를 보장하고 고속으로 용이하게 실현하기에 충분한 것임이 강하게 부각된다. 다른 실시예들에 따르면, 복수의 이미지들(서브 이미지들)이 생성된다. 이는 강제적인 것은 아니며, 단지 방법 및 시스템의 견고성을 강화한다. 이러한 선택적 분할은 실제로, 텍스트 또는 이미지 인식 시스템을 극복하는데 중요한 것으로 보여질 수 있다. 이러한 목적으로, 예를 들어 왜곡, 그레이스케일, 리인코딩, 리사이징, 노이징, 개별화, 리샘플링, 또는 스크램블링과 같은 동작에 의해 하나 또는 복수의 서브이미지들을 또한 수정할 수 있다. 이미지 수정은 (하드웨어 또는 소프트웨어로 구현되는) 규칙 결정(rule decision) 또는 결정 로직에 의해 또는 무작위적으로 실시될 수 있다. 이러한 수정을 수행하는 결정 로직은 클라이언트 브라우저의 프로파일을 데이터베이스를 설정하고, 시장에서 이용가능한 광고 차단기 세트를 테스트하고, 대역폭에 대한 통계치를 얻고, 구속 조건들을 서브하는 것 등으로부터 이익을 얻는다. 레이팅 메카니즘(rating mechanism; 광고 전달의 성공, 통계치 등)이 또한 (실시간이든 아니든 간에) 실시될 수 있다. 웹 페이지의 리포맷은 상수라기보다는 변수이며, 각각의 페이지는 서빙전에 리엔지니어링될 수 있다.
이하, 이러한 이미지 생성의 일부 이점을 설명한다. 이러한 이미지 생성 프로세스의 두드러진 이점은 이 이미지 생성 프로세스가 마크업 파일 내에 포함된 광고 표시의 보장을 허용하는 것이다. 실제로, 이 이미지 생성은 텍스트 분석 기술 및 이미지 인식 기술과 같은 소위 광고 차단기로 이용된 모든 기술을 극복한다. 텍스트를 포함하는 표시가능한 이미지는 이미지로 렌더링되어 왔기 때문에, 이후에 의미 또는 텍스트 필터링 툴이 어떠한 분석도 수행할 수 없다. 이들 툴의 인식가능한 데이터는 간단히 삭제되어 왔다. 여전히, 누군가 OCR 분석(동봉된 텍스트를 추출하기 위해 이미지를 분석하는 것)을 수행하려 시도할 수 있지만, 이들 툴은 이미지 품질에 매우 민감하고 많은 컴퓨팅 자원을 소모한다. 적응된 이미지 수정은 (잡음을 추가하가나 또는 이미지를 약간 왜곡시켜, 사용자에 대한 가독성과 OCR 또는 다른 분석 툴에 대한 추가된 복잡성 사이의 타협을 추구함으로써) 이 가능성을 쉽게 극복한다. 이미지 인식 기술에서와 같이 이들은 매우 초기 단계에 있다. 누군가 텍스트 영역으로부터 이미지 영역을 분리한 다음 이미지 매칭 기술(즉, 분리된 이미지와 알려진 광고 이미지의 데이터베이스를 비교하여, 상기 분리된 이미지가 광고 이미지인지 여부를 결정하는 것)을 적용하려 시도할 수 있다. 이것은 가능하더라도 다른 더 큰 이미지에 포함된 광고를 검출하는 것은 어려운 것으로 나타난다. 광고 이미지의 표면이 총 표면에 비해 더욱 작을 수록, 이미지 인식(또는 매칭)을 수행하기가 더 힘들어진다. 110% 이미지 내에 포함된 광고는 400% 이미지 내에 포함된 광고보다 훨씬 더 쉽게 검출되어 인식될 수 있다(인식은 평균적으로 문턱값 25%에서 급격하게 떨어진다). 심지어 (에지 포인트 검출 및 다른 기술을 이용함으로써 이미지 내의 관심 오브젝트를 자동으로 분리시키는 것을 목적으로 하는) 소위 패턴 매칭 기술처럼 진보된 이미지 인식 기술들도 또한 실제로는 떨어진다. 텍스트 분석 기술의 이용처럼, 이들 이미지 인식 기술들은 또한 CPU 및 메모리 집약형이기 때문에 실시간 또는 집중형 환경에서 우수한 솔루션을 제공하지 못한다. 동일한 분석을 수행하여, 무비 내의 배치를 생성할 수 있다(무비 내의 상표 출현을 검출하여 삭제하는 것은 여러해 동안 불가능한 상태였다).
도 6a 및 도 6b에서, 이점은 균질한 영역을 분리시키고 그 결과 효과적인 이미지 인식 기술을 수행하는 것을 막는 것이다. 도 6c에서, 이점은 이미지 인식 기술 및 텍스트/ OCR(Optical Character Recognition) 분석을 수행하기 위해 이미지들을 적절하게 합체하는 곤란성으로부터 발생한다.
따라서, 표시가능한 엘리먼트를 하나 또는 복수의 이미지들로 렌더링하는 것은 많은 이점들을 도입한다. 적절한 지능형 매핑에 따라, 광고 차단 기술에 대한 시스템의 견고성이 최적화될 수 있고 광고 표시가 보장될 수 있다. 보장될 하나 또는 복수의 영역들이 주어지면, 하나 또는 다른 이미지 생성 모드가 선택될 것이다. 즉, (예를 들어, 광고자에 의해 제공된 데이터에 따라) 광고가 위치되는 영역을 안다면, 이미지 매핑을 최적화하는 것이 가능해져, 이미지 인식 기술이 가능한 최저 성능을 보여주게 된다. 이러한 특성은, 광고자가 (예를 들어, 광고자의 특정한 광고들의 표시를 정확하게 보장하기 위하여) 추가적인 서비스를 지불할 수 있기 때문에, 관심있는 비지니스 모델을 허용하게 한다. 이는 또한 이미지 파일의 표시를 우선순위화하는 것(이후, 디스플레이 우선순위에 따라 순서대로 이미지를 전송하는 것; 예를 들어, 광고를 포함한 생성된 이미지 파일을 첫번째로 표시할 수 있음; 이러한 특성은 대역폭 파라미터 등을 고려할 때 유용할 수 있음)을 가능하게 한다.
결과적으로, 왜곡 처리, 그레이스케일 처리, 리인코딩, 리사이징, 노이징, 개별화, 리샘플링 또는 스크램블링에 의해 하나 또는 복수의 이미지를 바꾸는 추가적인 기술이 제공된다.
이하, 도 7을 참조하여 보면, 도 7은 본 발명의 일 실시예의 원리를 보여준다.
특정 실시예에 따르면, 도 7은 웹 서버(700), 프록시 서버(710) 및 웹 브라우저(730)를 보여준다.
도 7은 예를 들어, 단계 (701)에서 웹 브라우저(730)의 쿼리(query)가 프록시 서버(710)에 의해 수신(또는 해석; 도 7을 참조)됨을 보여준다. 단계 (702)에서 프록시 서버(710)는 네트워크(도시생략)를 통하여 웹 서버(700)에 쿼리를 전송한다. 단계 (703)에서 쿼리(702)에 응답하여, 웹 서버는 네트워크(도시 생략)를 통하여 마크업 파일을 전송한다. 프록시는 마크업 파일을 수신하고 본 발명의 설명된 실시예들에 따른 일련의 연산들을 동작하며 단계 (704)에서 마지막으로, 수정된 마크업 파일을 네트워크(도시 생략)를 통해 브라우저(730)에 전송한다. 웹 브라우저(730)는 수정된 마크업 파일을 해석한다.
도 7은 단지 일례로서만 제공된다. 많은 옵션 및 변경예가 추가로 설명될 것이다. 특히, 하나 또는 복수의 네트워크가 수반될 수 있으며, 이는 시간에 따라 변경할 수 있고 서로 다른 프로토콜들을 이용하여 서로 다른 특성들(RTC, ADSL, Fiber, T1, Wimax, UMTS, Wifi 등)로 이루어질 수 있다.
도 8은 프록시에 대한 동작을 보여준다.
이하, 도 8을 참조하여 본다. 특정 실시예에 따르면, 도 8은 브라우저 인스탄서(Browser lnstancer; 800), 이미지 파일 생성기(810), DOM 생성기(820) 및 마크업 파일 빌더(Markup File Builder; 830)를 보여준다.
특정 실시예에 따르면, 웹 서버(700)에 의해 서브되는 마크업 파일은 브라우저 인스탄서(800)에 의해 수신된다. 브라우저 인스탄서(800)는 마크업 파일을 해석하는데, 즉 브라우저 인스탄서는 뷰어 또는 브라우저에서 마크업 파일을 실행시킨다. 구문 분석 후, DOM 생성기(820)는 마크업 파일의 DOM 트리를 구성한다. DOM 생성기(820)는 (노드(들)의 삭제, 노드(들)의 교체 등과 같은 동작에 의해) DOM 트리를 조작 및/또는 수정하도록 적응된다. DOM 생성기(820)는 이미지 파일 생성기(810)와 상호작용하는데, 이미지 파일 생성기는 마크업 파일 DOM 트리의 하나 또는 복수의 노드로부터의 하나 또는 복수의 이미지(서브이미지들)를 렌더링하는데 적합하다. 즉, 이미지 파일 생성기는 DOM 생성기(820)와 상호작용하는데, DOM 생성기(820)는 수정된 DOM 트리(즉, 스크립트 언어 코드; HTML, PHP, XML 코드 또는 데이터)를 출력한다.
특정 실시예에 따르면, 이후, 마크업 파일 빌더(830)는 추가적인 스크립트 언어 코드를 이용하여 이미지 파일 생성기(810)에 의해 생성중인 이미지(또는 서브 이미지들의 집합체) 및 DOM 생성기(820)의 수정된 DOM 트리로부터 수정된 마크업 파일을 만든다. 상기 스크립트 언어 코드는, 실행시의 사용자 단말기로 하여금, 사용자가 제어하는 커서의 위치를 정의하는 좌표 정보를 전송하게끔 적응된다. 추가로, 상기 스크립트 언어 코드는 또한, 실행시의 사용자 단말기로 하여금, 사용자가 제어하는 커서의 클릭 액션을 정의하는 액션 정보를 전송하게끔 적응될 수 있다. 스크립트 언어 코드는 또한, (복수의 서브 이미지들이 렌더링되었다면) 생성되고 있었던 이미지들의 상대적 위치를 인코딩한다.
그 후, 수정된 마크업 파일은 웹 브라우저(720)에 의해 수신되어 해석된다. 사용자의 포인터 액션에 응답하여, 브라우저 인스탄서(800)는 사용자의 액션을 복제한다. 즉, 브라우저 인스턴서(800)는 대응하는 브라우징 인스탄스 또는 세션 내의 주어진 좌표에서 사용자가 제어하는 액션(클릭)을 시뮬레이션한다. 마지막으로, 브라우저 인스탄서(800)는 웹 서버(700)에 질문하고, 그에 따라 인터넷을 상호작용으로 브라우징하기 위하여 프로세스가 계속 진행된다.
특정 실시예에 따르면, 웹 서버(700)에 의해 서브되는 최초의 마크업 파일은 표시가능한 엘리먼트 세트를 포함하며 최초의 DOM 트리에 대응하는 반면, 프록시 서버(710)에 의해 출력되어진, 수정된 마크업 파일은 이미지 파일 생성기(810)에 의해 생성된 하나의 추가적인 이미지(또는 복수의 추가적인 이미지) 및 마크업 파일 빌더(830)에 의해 생성된 새로운(그리고 약한) 스크립 언어 코드를 포함한다. 수정된 마크업 파일은 또한, 수정된 DOM 트리에 따라 재구성되었기 때문에 새로운 데이터 구조를 갖는다.
특정 실시예에 따르면, 마크업 파일 빌더(830)에 의해 생성된 스크립트 언어 코드에 관하여, 스크립트 언어 코드는 실행시의 사용자 단말기로 하여금 상기 좌표 정보를 (프리페치(prefetch) 목적을 위하여, 즉, 응답 시간을 가속화하기 위해 마크업 파일에 존재하는 링크로 참조되는 마크업 파일의 요청을 예상하기 위하여) 지속적으로 또는 (리프레시 메카니즘을 통하여) 주기적으로 전송하게끔 적응될 수 있음이 추가로 인정된다. 생성되어 왔던 이미지 파일의 상대적 위치가 마크업 파일 빌더(830)에 의해 생성된 스크립트 언어 코드의 부분을 구성하고 있음을 상기할 수 있다. 특정 실시예에 따르면, 커서 좌표 및/또는 액션(클릭)에 관한 정보는 생성된 이미지들 중 어느 하나에 대한 것일 수 있고 수정된 마크업 파일의 절대 좌표로 정의될 수 있다. 다른 실시예에 따르면, 마크업 파일 빌더(830)에 의해 생성된 스크립트 언어 코드는 또한, 좌표를 전송하고 이미지 파일 생성기(810)에 의해 생성된 이미지들의 서브세트에 대해서만 또는 심지어 하나의 단일 이미지(서브 이미지)의 서브영역에 대해서 클릭하도록 적응될 수 있는데, 즉 사용자 상호작용성이 일부 영역에 대해 가능하게 유지될 수 있고 다른 특정한 영역들에 대해서는 금지될 수 있다(존재하지 않는다). 이 변경예는, 변경예가 사용자 상호작용성을 통해 제공한 제어성때문에 매우 중요해진다.
도 6에 대하여 추가로 설명된 이미지 생성에서와 같이, 특정 실시예에 따라, 웹 브라우저에서 실행하는 인스턴스와, 브라우저 인스턴서에서 실행하는 인스턴스 간의 미러링(mirroring)의 유형이 개시된다. 이러한 미러링은 추가의 능력들을 가능하게 한다. 마크업 파일이 HTTP 마크업 파일인 경우, HTML 요청이 수행될 때, 브라우저 자신에 대한 정보(유형, 컬러, 해상도)가 전송된다. 일반적으로, 이런 종류의 핑거프린트(fingerprint)는 한번 전송되지만, 이 정보는 규칙적으로 검색될 수 있다. 따라서, (자바) 스크립트 모드에서는, 페이지의 해상도를 분석하고 따라서 (이미지(들)을 리사이징함으로써) 이미지 파일들을 렌더링하는 것이 가능해진다. 특정 실시예에 따르면, 본 발명의 일 실시예에 의해 생성된 이미지들은 최초의 마크업 파일의 표시가능한 엘리먼트의 것과 동일한 크기로 이루어질 수 있다. 그러나, 다른 실시예에 따르면, 이미지들은 또한, 타겟으로 되는 뷰어 또는 브라우저의 표시 영역에 따라 더 클 수도 또는 더 작을 수도 있다. 이미지 파일들이 타겟으로 되는 뷰어 또는 브라우저의 표시 영역보다 더 큰 경우에, 상기 타겟으로 되는 뷰어 또는 브라우저는 최초의 마크업 파일의 완전한 이미지를 표시하는 표준 스크롤 옵션들을 이용할 것이다. 마지막으로, 다른 실시예에 따르면, 사용자가 제어하는 좌표를 저장하고, 웹 브라우저에 대한 정보(유형, 컬러, 해상도...)를 정보하고, 오토리프레시(auto-refresh) 메카니즘 등을 재설정하는데 있어 쿠키들의 이용이 중요할 수 있다.
특정 실시예에 따르면 웹 브라우저에 따라, 마크업 파일의 표시가능한 엘리먼트의 이미지 렌더링은 약간 다를 수 있다. 기본적으로, HTML이 표준이고 그 후, 최종 HTML 페이지의 렌더링이 시중에서 이용가능한 브라우저들 사이에서 일관성있게 이루어진다. 그러나, 실제로는 서로 다른 웹 브라우저에 의해 수행된 서로 다른 렌더링들 간에 차이들이 있을 수 있다. 개시된 동작은 이들 차이를 고려하도록 지시될 수 있다.
이하, 도 9를 참조하여 보면, 도 9는 아키텍쳐 옵션 및 대체예를 고려한다.
본 개시는 선호되는 2-티어 아키텍쳐를 보여주며, 여기서 프록시 서버는 본 발명의 특정 실시예들의 단계들(DOM 트리 수정 및 이미지 생성)을 수행한다. 제안되어진 메카니즘의 구현은 추가로 설명될 더 많은 가능성들에 따라 이루어질 수 있다.
프록시에 대한 도입 고려 사항 및 브라우저들의 경제성이 요구된다. 브라우저들은 "뷰어"로서 넓게 이해될 수 있다. 브라우저는 코드 엘리먼트를 실행하고 사용자에게 표시가능한 엘리먼트로 마크업 파일들을 렌더링하고 코드 엘리먼트를 실행하도록 설계된다. 실제로, 웹 브라우저는 데스크톱 컴퓨터 또는 모바일 디바이스 상에 설치되고 스크립트 프로그램들(대부분 JavaScript)을 실행하고 웹 페이지를 구문분석하여 표시하도록 적응된 소프트웨어 프로그램들이다. 기술적 그리고 법적인 관점으로부터, 몇몇 웹 브라우저는 (Firefox처럼) 공개 소스이고 다른 웹 브라우저들은 독점적 소스(인터넷)이다. 공개 소스와 독점적 소스 간의 이 차이는 중요한데 그 이유는 독점적 소프트웨어는 공개 소스 소프트웨어에서의 경우가 아닌 소프트웨어 코드 전개를 제어하게 하기 때문이다. 예를 들어, 독점적 미디어 플레이어는 빨리 감기(fast-forward)를 금지할 수 있고, 따라서 사용자로 하여금 (일반적으로 비디오 파일의 시작에 위치된) 비디오 광고를 시청하도록 강제한다. 공개 소스 소프트웨어(즉, 액세스가능하고 변경가능한 소프트웨어 코드)에서, 소프트웨어 코드는 광고 스킵을 실행하도록 수정될 수 있기 때문에 더이상 강제 광고 시청이 가능하지 않게 된다. 보다 일반적으로, 이는 임의의 DRM(Digital Management Right) 시스템에 대해 사실로 되는데, 이 시스템은 폐쇄된 소프트웨어 코드의 적어도 일부분을 필수적으로 요구한다(누군가에게 이용가능한 소스 코드를 개방하는 것과 반대로 비밀에 의해 보호). 이론적으로, 독점적 브라우저는 광고 차단을 선택적으로 실행할 수 있다(이용가능한 특정 애드온(add-on) 등이 없음). 공개 소스 웹 브라우저의 경우는 보다 단순한데 그 이유는 포크(fork)가 언제든지 출현할 수 있어 이러한 특정 애드온을 허용하기 때문이다. 광고 차단 경제성의 다른 중요한 양상은 비지니스 이익이다. 잘 알려진 공개 소스 브라우저는 메이저 광고 회사에 의해 큰 자본 지원을 받는다(따라서, 그 브라우저에 광고 차단기를 디폴트 통합하는 것을 실행시 약간의 인센티브와 이익을 갖는다). 그러나 포크(상기 공개 소스 브라우저의 수정된 배포물들)는 언제든지 출현할 수 있다. 독점적 웹 브라우저는 자신들의 이익 또는 동의에 따라 일부 광고를 가능하게 선택적으로 인에이블시키고 다른 광고들을 디스에이블시킬 수 있다. 예를 들어, Microsoft Internet Explorer는 Google AdwordsTM를 차단하고 자신들의 플랫폼의 것들만을 허용하는 것이 기술적으로 가능할 수 있다. 이들 모든 이유로, 본 발명의 일 실시예의 단계들을 수행하는 프록시 서버의 이용은 매우 중요하다(그러나 강제적인 사항은 아니다).
도 9는 웹 서버(700), 프록시 서버(710) 및 웹 브라우저(720)를 다양한 구성으로 보여준다. 논리적으로, 프록시 서버(710)는 웹 서버(700)와 웹 브라우저 사이에 위치된다. 물리적으로, 프록시 서버(710)와 웹 브라우저(700)는 도 9에 예를 들어 나타낸 바와 같이, 동일한 물리적 머신 상에서 실행될 수 있다. 그러나, 웹 브라우저(720) 자체를 실행시키는 로컬 머신 상의 가상 머신을 이용하는 것은 항상 가능한 것은 아니며, 도 9b는 프록시 서버(710)와 웹 서버(700)가 동일한 물리적 머신 상에서 실행하는 상황을 보여준다. 도 9c는 웹 서버(700), 프록시 서버(710) 및 웹 브라우저(720)가 세개의 서로 다른 물리적 머신들 상에서 실행하는 마지막 상황을 보여준다.
프록시는 일반적으로 하드웨어로 구현되기 때문에 소프트웨어로도 또한 구현될 수 있다. 결과적으로, 본 발명의 일 실시예의 단계들은 웹 브라우저(720)에서 부분적으로, 프록시 서버(710)에서 부분적으로, 웹 서버(700)에서 부분적으로 (또는 이들의 조합으로) 실시될 수 있다.
특정 실시예에 따르면, 프록시 서버가 웹 서버의 모든 쿼리들을 볼 것이기 때문에(계정 번호, 패스워드 및 웹 브라우저의 방문한 페이지들이 웹 브라우저 쿼리를 통하여 프록시 서버에 전달될 것이기 때문에), (OpenID 또는 다른 익명화 메카니즘(anonymization mechanism)이 이용되지 않는 한) 신뢰된 참여자에 의해 프록시가 실행되는 것을 매우 보장하게 된다. 인증 메카니즘을 이용할 수 있다(저장 인증에서부터 간단한 등록에 이르는 범위에 있음; 해쉬 값이 이미지 파일들의 전달에 이용될 수 있음).
도 9a는 웹 서버의 관리자(컨텐츠 제공자)와 광고자 사이의 동의로 인해 간단하고 쉬운 구현인 것으로 예상된다. 바람직한 실시예에서, 웹 브라우저는 이러한 실시 모드에 대하여 어떠한 것도 말하지 않는다(수행된 동작은 투명한데, 즉, 브라우저는 단지 수정된 마크업 파일을 수신만 하는 반면, 쿼리들은 프록시 서버에 의해 쉽게 해석될 것이다). 이러한 구성의 이점은, 커텐츠 제공자가 자신의 광고를 보장하는 게런티를 갖는 한편, 웹 브라우저는 어떠한 악성 코드도 실행하지 않는 게런티를 갖는다는 점이다. 이것은 많은 관심있는 비지니스 기회들을 여는 윈윈 동작이다.
도 9b는 특정 실시예에 따른 추가의 가능성을 나타낸다. 본 발명의 일 실시예를 실시하는 프로그램은 웹 브라우저(예를 들어, 오퍼레이팅 시스템)보다는 우수한 레벨에서 실행할 수 있다. 또는 이 프로그램은 플러그인 또는 애드온의 형태로 실시될 수 있다. 심지어 이러한 프로그램의 실행 또는 존재는 예를 들어, 웹 서버에 의해 요구될 수도 있다(예를 들어, 호환가능하지 않은 브라우저는 서브되지 않을 것이다). 브라우저는 설명된 단계들의 존재에 동의할 수도 동의하지 않을 수도 있다. 예를 들어, 웹 페이지의 전달을 허용하기 위하여, 광고자가 (마켓팅된 "ad secure" 브라우저 애드 온을 통하여) 이러한 프로그램의 존재 및 실행을 요구할 수 있다(이 경우에, 브라우저의 사용자는 예를 들어, 이러한 애드온의 설치에 동의할 수 있다). 특정 실시예에 따르면, 이는 멀웨어(malware)의 형태로 실행될 수 있으며, 멀웨어는 브라우저 사용자의 승낙없이 상기 단계들을 실행할 것이다. 다른 실시예에 따르면, 이는 독점적 브라우저에서도 또한 본 발명의 일 실시예의 실시에 대응할 수 있다(제어성이 없다면 사용자는 거의 없다).
도 9c는 프로시 서버가 예를 들어, 멀웨어(궁극적으로 브라우저의 의지에 대항하여 또는 브라우저의 승락없이 광고의 표시를 보장하기 위한 맨-인-더 미들 어택(man-in-the middle attack))로서 역할을 할 수 있기 때문에 보다 복잡한 경우를 나타낸다. 특정 실시예에 따르면, 이것은 또한 네트워크를 통한 프록시 서버, 또는 웹 서버에 대한 온디맨드 자원으로서 역할을 하고 웹 브라우저에 대한 인터넷에의 신뢰성있는 액세스를 제공하는 프록시의 가능한 상호화를 나타낸다.
추가의 정보(observation)는 제안된 2-피어 아키텍쳐에 대하여 정형화될 수 있는데, 수정된 마크업 파일은 (일부 환경에서는) 컨텐츠 서버의 어드레스(외부 웹 서버의 URL, 즉, 이것은 설명된 방법을 실시하지 않음)를 배타적으로 포함할 수 있고 이 경우 웹 브라우저는 수정된 마크업 파일을 해석할 때 이들 컨텐츠 서버에 직접 질문할 것이다(예를 들어 HTTP GET 요청). 이는 공개 시스템이다. 예를 들어, 이러한 설명된 방법의 사용 시나리오는 웹 페이지의 표시를 보장하기 위해 원 숏(one-shot) 방식인 "온-디멘드(on-demand)"에 대응한다. 그러나, 수정된 마크업 파일은 또한 설명된 방법을 실시하는 프록시들의 주소를 배타적으로 포함할 수 있고 이 경우 상기 프록시들은 또한, 요청된 컨텐츠를 검색하기 위하여 어드레스 변환기(address-translator)에 의해 적응될 수 있다. 이는 웹 브라우저로 하여금 설명된 시스템을 실시하는 프록시에만 질문하도록 강제시키는 폐쇄 시스템이다. 일단 웹 브라우저가 이러한 프록시를 질문하였다면, 브라우저는 트랩되고 (현재 방법 또는 다른 것들에 의해) 단지 리엔지니어링된 컨텐츠들을 보기만 할 것이다. 마지막 가능성은 (직접 쿼리에 대한) 컨텐츠 서버의 어드레스와 (간접 쿼리에 대한) 프록시 양쪽 모두를 포함하는 수정된 마크업 파일을 갖는 것이다. 이들 세가지 가능성은 결정될 정책(설명된 시스템이 폐쇄형인지 또는 개방형인지 여부, 또는 어떤 포인트에서 부분적으로 개방 또는 폐쇄된 것인지를 결정하는 정책)에 의존한다.
이하, 대안의 실시예를 나타낸다.
본 발명의 특정 실시예들은 첫번째 관점(sight)과 관련되지 않은 기술들 - 이미지 생성 기술 및 DOM 트리 수정 메카니즘 - 간의 시너지인 것으로서 보여질 수 있다. 즉, 본 발명의 실시예는 이미지 생성 처리 메카니즘에 더하여 DOM 트리 수정 메카니즘을 결합한다.
특정 실시예에 따라, 광고의 표시를 보장하는 시스템이 (선택적으로, 추가하여) 제공된다. 이 시스템은 웹 서버, 프록시 서버, 및 클라이언트 브라우저를 포함한다. 제1 클라이언트 브라우저 쿼리에 응답하여, 프록시 서버는 대응하는 마크업 파일을 웹 서버에게 요청하고; 상기 마크업 파일의 수신시, 프록시 서버는 브라우저에서 상기 마크업 파일을 해석하고 DOM 트리를 얻으며, 해석된(실행된) 마크업 파일의 일부를 그래픽 이미지로 변환하며; 그 후 프록시 서버는 수정된 DOM 트리(그리고, 사용자가 제어하는 커서의 위치를 정의하는 좌표 정보 및 상기 사용자가 제어하는 커서의 (클릭과 같은) 액션 정보를 전송하도록 적응된, 선택적으로 약하게 리엔지니어링된 스크립트 언어 코드)로부터 상기 그래픽 이미지를 포함한 수정된 마크업 파일을 구성한다. 마침내, 클라이언트 웹 브라우저는 수정된 마크업 파일을 표시 및 해석한다.
본 발명의 특정 실시예들에 따르면, 마크업 파일을 뷰어 또는 브라우저에서 해석(또는 렌더링)하는 것은 마크업 파일의 표시가능한 엘리먼트를 정의(또는 렌더링)한다. 해석된 마크업 파일은 이미지로 부분적으로 완전히 "고정처리되어(frozen)" 이루어질 수 있다. 즉, 해석된 마크업 파일의 서브부분들 또는 서브 영역들을 마크업파일의 관련된 이미지(들)로 교체하고, 상기 이미지(들)를 수정된 마크업 파일 내에 포함시키며, 이에 의해/한편으로 마크업 파일의 스크립트 언어 코드를 수정하는 것이 가능하다. 최초의 마크업 파일 및 수정된 마크업 파일은 해석(렌더링)될 때 동일한 것으로 보지만 스크립트 언어 코드는 매우 다르다. 실제로, 수정된 마크업 파일은 렌더링되고 있었던 이미지와 연관되어진, 수정된(및 간략화된) 스크립트 언어 코드를 포함한다. 추가적으로, 상기 이미지는 추가로 변환될 수 있다(이미지는 무작위적이든 아니든, 분할, 그레이스케일 등으로 처리받을 수 있다). 이 유연성있는 "고정 처리(freezing)"는 마크업 파일의 DOM 트리의 조작으로 인해 실현된다. 해석된 마크업 파일의 서브부분이 "고정"처리된 것으로 주어지면, 마크업 파일의 DOM 트리가 분석된다. 이 서브부분에 대응하는 자식 노드가 정의된다. 그 후, 이들 자식 노드를 포함하는 부모 노드가 또한 정의된다. 하나의 부모 노드가 선택되고 이 부모 노드에 대응하는 표시가능한 엘리먼트 세트가 이미지로 변환된다. 선택된 부모 노드는 이미지를 포함하는 노드로 교체되고, 그에 따라 해석된 마크업 파일의 레이아웃이 수정되지 않은 상태로 남겨진다.
본 발명의 다른 실시예에 따르면, 인터넷 컨텐츠를 뷰하는 방법이 개시되며, 여기서 이미지는 원격 프록시 서버에서, 원격 프록시 서버가 요청에 응답하여 인터넷으로부터 검색한 웹 페이지로부터 렌더링되며, 웹 페이지는 텍스트 및 그래픽을 포함한다.
특정 실시예에 따르면, 프록시 서버가 표시를 위해 사용자 머신 상의 표준 웹 브라우저에 브라우징될 사이트를 나타내는 이미지 데이터를 전송하고, 브라우저 상에서 실행하는 스크립트를 이용하여 마우스 커맨드를 캡쳐하는 것에 따른 견고한 프록시 인터넷 브라우징 방법이 개시된다.
바람직한 실시예에서, 마크업 파일은 HTML(hyper-text markup language) 또는 PHP 페이지이지만, 훨씬 더 넓은 경우가 고려될 수 있음이 인정된다. 실제로, 본 개시는 World Wide Web 이외의 다른 환경에도 동일하게 적용한다. 따라서, 본 발명의 범위는 모든 형태의 전자 통신을 포괄하는 것으로 의도된다.
정의에 의해, 개시된 기술은 환경이 무엇이든 간에 어떠한 종류의 마크업 파일에 대해서도 적용한다. 예를 들어, 본 기술은 모바일/무선 환경에서 WML 페이지에 적용한다. 본 발명은 기술적 마크업 언어를 지원하도록 명시적으로 설계된 기타 시스템 뿐만 아니라, XHTML(well-formed XML), DocBook, MathML, SVG, Open eBook, TEI, XBA, SGML, XML과 같은 모든 알려진 마크업 언어를 포함한다. 대부분의 브라우저는 본래 HTML 뿐만 아니라 다양한 포맷들을 지원하고 플러그인의 사용을 통하여 더 많이 지원하도록 확장될 수 있음이 인정된다. 유사하게, 본 개시는 현재의 웹 인터페이스 개발 제품을 포함한 많은 기술들에 적용될 수 있는데, JVM(Java Virtual Machine)으로 인해 웹 페이지 상에서 실행될 수 있는 자바로 된 애플릿을 포함하는 웹 페이지에 적용될 수 있고; AJAX(Asynchronous JavaScript and XML)로 및/또는 Flash 또는 (적응된 플러그인을 필요로 하는) WPF/E와 같은 기술을 이용하여 개발될 수 있는 RIA(Rich Internet Applications)를 포함하는 웹 페이지에 적용될 수 있다. 그리고 마지막으로, RDA(Rich Desktop Applications), 가상 머신(Eclipse RCP, NetBeans, Java Web Start, Mozilla XULRunner, Adobe AIR 또는 Microsoft SmartClient)을 필요로 하거나 또는 Flash/Flex/ActionScript 또는 HTML/Javascript/CSS/AJAX와 같은 기술과 함께 동작하는 RDA(Rich Desktop Applications)를 현재 이용하는 웹 인터페이스에 적용될 수 있다. XUL은 W3C 표준 XML 1.0에 기초한 XML 언어임을 상기해야 한다. XUL로 쓰여진 애플리케이션들은 HTML 4.0; Cascading Style Sheets (CSS) 1 및 2; DOM(Document Object Model) Levels 1 및 2; ECMA-262 Edition 3 (ECMAscript)를 포함한 JavaScript 1.5; XML 1.0을 피쳐링하는 추가적인 W3C 표준 기술들에 기초한다.
특정 실시예들에 따르면, 설명된 접근 방식은 순수 웹 환경으로 제한되지 않으며, 예를 들어, 전자 매시징이 본 발명의 실시예를 구현할 수 있다(이메일 클라이언트는 많은 광고를 수신하며, 이들의 효과적인 표시가 발송자에 의해 보장되도록 의도된다). 이메일(전자 매시지)도 또한, 이들이 HTML 포맷으로 될 수 있기 때문에 종종 포함된다. 다른 실시예들에 따르면, 본 개시는 또한 단순히 웹 브라우저 보다는 애플리케이션 슈트(suite)에도 적용하며: 애플리케이션은 또한 광고를 내장한다. 예를 들어, 광고는 pdf 뷰어에 내장될 수 있다(pdf는 사실상 존재하는 표준이며 광고는 다른 파라미터 보다도 pdf 파일의 컨텐츠 및 콘텍스트에 따라 마지막 사용자에게 적응될 수 있다). 패러다임 SaaS(Software as a Service)에 따라, 소프트웨어는 인터넷을 통하여 전달되며, 임의의 소프트웨어 애플리케이션은 마크업 파일로서 나타날 수 있다(HTML 페이지). 이와 유사하게, 게임 환경에는 내장된 광고가 더욱더 제공된다. 광고 차단 기술은 이들 환경에서 나타나며, 본 개시는 광고의 표시를 보장하게 한다. 특정 실시예에 따르면, 본 개시는 실제로 모든 뷰어들을 해결한다(문서로부터의 컨텐츠는 "컨텐츠 렌더링 애플리케이션 또는 디바이스" 상에 렌더링될 수 있다. 컨텐츠 렌더링 애플리케이션의 예들은 인터넷 브라우저(예를 들어, Explorer 또는 Netscape), 미디어 플레이어(예를 들어, MP3 플레이어, Realnetworks 스트리밍 오디오 파일 플레이어 등), 뷰어(예를 들어, Abobe Acrobat pdf reader) 등을 포함한다.
특정 실시예에 따르면, 본 개시는 또는 소위 매시업(mashup)을 보장하는데 매우 중요하다. 매시업은 사용자 브라우저에서 복수의 컨텐츠 제공자로부터의 컨텐츠(데이터 및 코드)를 믹싱 및 병합하여 고 가치 웹 애플리케이션(high-value web application)을 제공한다. 웹 애플리케이션은 쉽게 이용가능한 클라이언트측 JavaScript 라이브러리(및 AJAX와 같은 프로그래밍 패러다임)을 이용하여 클라이언트측(브라우저) 상에서는 확장형 스크립트에 점점더 의존한다. 매시업 개발자들은 일반적으로 서로 다른 기점(origin)으로부터의 코드를 직접 포함함으로써 서로 다른 서버들로부터의 컨텐츠를 페치하고 그 컨텐츠를 매시업에 서브하는 웹 애플리케이션 프록시 서버를 이용한다. 컨텐츠를 분리 및 합체함으로써, 동봉되거나 첨부된 광고가 제거 또는 스킵될 위험성이 있다. 공통 브라우저 플랫폼의 네이티브 시큐리티 모델(native security model)은 컨텐츠가 분리되도록 허용, 즉 광고가 제거되도록 허용한다. 개시된 이미지 생성 메카니즘을 이용함으로써, 컨텐츠를 분리할 수 없게 하고(컨텐츠를 캡슐화함) 이어서 이들 매시업 환경에서도 또한 광고 표시를 보장하는 것이 가능해진다. 이들 이미지 생성 기술과 연관되어, 추가의 코드 재기록 메카니즘은 (JavaScript의 자체 수정 특성으로 인해) 정적 분석 및 동적 코드 재기록의 조합을 행할 수 있는 JavaScript 재기록을 이용할 수 있으며, 동작들이 재기록 프록시에서 수행되어진다.
보다 일반적으로, 이미지 생성에 더하여 설명된 스크립트 언어 코드 리엔지니어링 메카니즘은 가시화와 프로그래밍 사이에 구별이 행해질 수 있는 임의의 환경에 적용한다. 이미지 매핑/생성은 아날로그 캡쳐 또는 비디어 버퍼 액세스를 통하여 항상 가능하다. 이어서, 본 설명은 기초가 되는 프로그래밍이 액세스될 수 있을 때마다 적용될 수 있는 기술을 개시한다(이 기술은 안전한 수입 스트림을 보장하게 하기 때문에 이는 보다 더 일반적인 경우이기 쉽다). 코드 엘리먼트(기초가 되는 프로그램 및 명령)가 (예를 들어, API로 인해) 액세스될 수 있다면, 이들은 (심지어 실시간으로) 수정될 수 있고 제안된 메카니즘은 광고 표시를 보장할 수 있다. 심지어 기초가 되는 프로그램이 액세스될 수 없는 경우에도, 학습, 시뮬레이션, 예상, 연산 등이 이루어질 수 있다. 이어서, 재프로그래밍도 또한 이루어질 수 있다(학습 단계는 현재의 솔루션 범위에 추가되어야 한다).
이하, 본 발명의 실시예들과 선택적으로 결합될 수 있는 개선된 특징을 설명한다.
DOM 검사 툴은 시중에서 입수가능하다. 이러한 툴은 본 발명의 실시예를 실시함으로부터 큰 이익을 얻는다: 예를 들어, Mozilla DOM 인스펙터(Inspector)의 확장은 본 발명의 실시예들에 따라 즉, 하나 또는 복수의 노드의 컨텐츠를 하나 또는 복수의 이미지로 변환하고 DOM 트리로 수정하고 생성된 이미지(들)을 수정된 마크업 파일 내에 직접 포함시킴으로써, 마크업 파일을 직접 수정하여 저장하게 할 수 있다. 이러한 개발 제품은 사용자로 하여금 편집 동작 동안에 (이미지들 내에서) 자신들의 문서의 부분을 "고정" 처리하도록 허용한다. 많은 이점들 중에서, 이는 (스파이더 또는 보트(bot)가 이미지들의 픽셀을 분석하지 못하기 때문에) 사용자로 하여금 자신의 컨텐츠의 이미지 변환된 부분의 크롤링 및 인덱싱을 방해하게 허용한다. 이는 또한, (마크업 파일이 전달될 때) 컨텐츠의 마지막 뷰어에 의한 임의의 복사/붙여넣기 동작을 금지하게 허용한다.
본 발명의 실시예들의 다른 가능한 이용은 에러들을 포함하는 마크업 파일들을 리페어하는 것으로 구성된다. (예를들어, 스크립에서) 에러가 검출되면, 본 발명의 실시예에 따른, 에러들을 포함한 노드(들)의 컨텐츠의 이미지로의 변환은 에러가 없는 마크업 파일을 생성하도록 할 수 있다.
이미지 생성을 이용하는 것은 이것이 마크업 파일 상의 가능한 출력 제어를 수반하기 때문에 많은 이익이 되는 기회를 제공한다. 예를들어, 노드에 대응하는 이미지가 렌더링되었다면, 고려되는 이미지에 액세스하기 위하여 인증 및/또는 지불을 필요로 하고 안전한 서버 상에 상기 이미지를 호스트하는 것이 가능해진다. 그 후, 더 많은 유연성으로 주어진 파일의 부분을 선택적으로 보장하는 것이 가능해진다. 유사한 메카니즘은 사용자 또는 머신에 이전에 허가되었던 권한에 따라 컨텐츠 또는 컨텐츠 부분에 조건적으로 액세스하는 것을 실시한다.
이미지 생성과 별개로, <usemap> 태그의 사용도 중요하다. 사용맵(usemap) 속성은 이미지의 부분을 구별시키는 맵을 지시한다. 이는 URL 및 링크를 리인코딩하게 허용하고 후속하여 문서의 상호작용성을 제어하게 허용한다.
"노드 제어"에 대해서는, 미세 세분화 메카니즘(fine-grained mechanism)(노드가 유효 노드인지 또는 무효 노드인지 또는 리인코딩 노드 이벤트인지 여부를 결정하는 것)을 실시하는 것이 또한 가능해진다. "DOM 트리 제어"에 대해서는, 누구나 관심있는 기회에 대해 생각할 수 있다. 예를 들어, 상주 프로그램(daemon) 또는 소프트웨어 프로그램이 사용자에게 마지막 표시를 허용하도록 (또는 허용하지 않도록) 하기 위해 수정되어 구문분석된 마크업 파일의 DOM 트리의 무결성을 검사한다. 이러한 DOM 트리 프로파일은 "서명", 예를 들어 특징 또는 값 세트를 이용할 수 있다. (필터링 기술에 대한) 견고한 DOM 트리 프로파일을 포함한 "최상의 프랙티스(Best practice)" 데이터베이스를 설정하는 것이 또한 가능하다. DOM 경로를 통한 제어는 유사한 이점들을 제공한다.
이하, 다른 고려 사항을 설명한다.
첫번째로, 데이터 센터 소프트웨어 코드(SaaS(Software as a Service) 모델)의 매우 빈번한 업데이트는 본 발명의 실시예들과 결합하여 유용할 수 있다. 본 발명의 실시예들을 실시하는 광고자는 실제로, (예를 들어, 웹 메일로) 고객에게 컨텐츠 및 서비스를 전달하는 데이터 센터 소프트웨어 코드를 매우 빈번하게 업데이트할 수 있다. 이어서, 광고 차단기는 이에 따라 광고 차단기 플러그인 또는 애드온을 업데이트함으로써 학습 및 적응하려 시도할 수 있지만, 변화 빈도는 광고 차단을 방지할 수 있다.
두번째로, 핸들링 암호화된 브라우징 세션(예를 들어, SSL)은 본 발명의 실시예들과 결합하면 흥미있는 가능성이 있음을 보여준다. 이 개념은 컨텐츠를 서브하는 것을 수락하기 위하여, 서비스 제공자가 전달된 컨텐츠의 무결성을 검사할 수 있다는 것이고(이에 따라 광고를 포함한 모든 컨텐츠의 표시가 보장될 것임); 따라서, 해시 값의 이용을 포함한 몇몇 메카니즘이 이용될 수 있다. 광고 차단기는 여전히 이러한 환경에서(예를 들어, http 하에서의 웹 메일에서) 광고 차단을 성공할 수 있을 것임이 인정된다. 그 이유는 애드온 및 플러그인은 클라이언트 상에서의 컨텐츠의 암호해제 후 그리고 사용자에게의 마지막 비쥬얼 렌더링 전에 동작하기 때문이다(데이터 전송 계층은 단독으로 고려된다). 즉, 추가의 필터링 단계들은 사용자 머신 상의 가장 최종적인 제어를 설정하지 않는 한, 클라이언트 브라우저 상에서 맨 끝까지 컨텐츠를 수정하는 것을 항상 허용한다. 즉, 암호화 메카니즘은 본 발명의 설명된 실시예들과 결합하는 것에 관련하고 있다(이미지 암호화 등).
세번째로, 본 발명의 실시예는 TC(Trusted Computing) 메카니즘들에 의해 발생되는 파라미터 또는 구속조건들을 서브하는 것과 결합될 수 있는데, 예를 들어, 특정 네트워크가 비호환 브라우저에 웹 페이지를 서브하는 것을 거절할 수 있다. 이는 예를 들어, 오퍼레이팅 시스템 업데이트를 위한 메카니즘과 관련되어 있다. 승인 또는 인증된 클라이언트의 사용을 검증함으로써, 웹 사이트는, 사용자가 특정 수의 광고를 뷰하도록 강제되었음을 자체 충족한다(가능한 시스템은 인증된 DOM 트리의 무결성을 검사한다). 이와 반대로, (인가되지 않은 추출, 필터링, 또는 DOM 수정 메카니즘 또는 기술을 이용하여 금지된 프록시, 스파이더 또는 식별된 프록시를 서브하지 않음으로써) 블랙리스트 메카니즘을 이용하는 것이 가능하다 . 그러나, 이어서, 프록시 바운싱(또는 데이터 캐싱) 기술은 이들 블랙리스트 접근 방식을 극복하도록 실행할 수 있다. 또 다른 대책은 컨텐츠를 전달하기 위한 정확한 경로를 필요로 하는 것으로 구성된다. 결과적으로, 사용자는 관련된 컨텐츠를 수신할 수 있기 위하여, 미리 정해진 링크 경로들(보트 또는 스파이더가 이 경로를 정확하게 뒤따라오는 것은 불가능함)을 방문해야 할 것이다(그렇지 않으면 원하는 컨텐츠가 전달되지 않는다). DOM 트리 수정은 이들 양태 및 규칙을 고려하도록 지시된다. 유사하게, "승인된" 소프트웨어에 의해서만 판독될 수 있는 독점적인 암호호된 파일 포맷을 생성하는 것이 가능하며, 이를 위하여, 암호 해제 키를 네트워크 서버로부터 얻어야 한다(키는 리버스 엔지니어링(reverse engineering)에 의해 복구하는 것이 극도로 어렵다). TC(Trusted Computing) 패러다임과 관련된 개발 제품은 컴퓨터 디바이스의 제어를 얻어려는 경향이 있는데; OS(deep) 레벨은 광고의 전달을 가능하게 하는 마지막 레벨이 될 수 있다.
네번째로, DOM의 재기록은 많은 관련된 기회를 제공한다. DOM예를 들어, 단일의 이미지(및 연관되어 있는 매우 간략화된 DOM 트리)를 생성하고, 가능한 비디오 영역과 겹쳐진 상태에서 생성된 이미지를 배경 이미지로서 사용(전면에서는, 마크업 파일이 HTML 마크업 파일이였다면, 즉, 적응된 DOM 트리였다면 <DIV> 태그를 사용)하는데 있어 중요하다. 사용자가 비디오 내의 광고를 스킵하지 못하도록 내장된 비디오 플레이어 내의 빨리감기 버튼에 대한 액세스를 디스에이블시키기 위하여 전면(foreground)에서의 이미지를 이용하는 것과 같이 넓은 범위의 간접 애플리케이션을 가정하는 것도 가능하다(이 동작은 예를 들어, 리프레시에 의해 임시적으로, 또는 영구적으로 이루어질 수 있다).
본 발명은 완전 하드웨어 실시, 완전 소프트웨어 실시, 또는 하드웨어와 소프트웨어 엘리먼트 양쪽을 포함한 실시의 형태를 취할 수 있다. 바람직한 실시예에서, 본 발명은 이들로 한정되는 것은 아니지만 펌웨어, 상주형 소프트웨어, 마이크로코드 등을 포함한 소프트웨어로 실시된다. 고성능 시스템에서, 이미지 생성 처리와 번들링된 시각화 메카니즘의 하드웨어 구현도 바람직한 것으로 증명할 수 있다.
추가로, 본 발명은 컴퓨터 또는 임의의 명령 실행 시스템과 결합하거나 또는 이들에 의한 이용을 위한 프로그램 코드를 제공하는, 컴퓨터 사용가능 또는 컴퓨터 판독가능 기록 매체로부터 액세스가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 설명을 위하여, 컴퓨터 이용가능 또는 컴퓨터 판독가능 기록 매체는 명령 실행 시스템, 장치 또는 디바이스와 결합하거나 또는 이들에 의한 이용을 위한 프로그램을 포함, 저장, 통신, 전파, 또는 전달할 수 있는 임의의 장치일 수 있다.
Firefox는 Mozilla Foundation의 상표이다.
Internet Explorer는 Microsoft Corp의 상표이다.
Google은 Google Inc의 상표이다.
다른 회사, 제품, 또는 서비스 명은 다른 회사의 상표 또는 서비스 마크일 수 있다.
100: 마크업 파일
110: 표시가능한 엘리먼트
120: 스크립트 언어 코드
700: 웹 서버
710: 프록시 서버
800: 브라우저 인스탄서
810: 이미지 파일 생성기
820: DOM 생성기
830: 마크업 파일 빌더

Claims (10)

  1. 하나 이상의 표시가능한 엘리먼트를 포함하는 해석된 마크업 파일(interpreted markup file)의 DOM(Document Object Model) 트리를 수정하는 방법에 있어서,
    상기 해석된 마크업 파일의 특정 표시 영역을 정의하는 단계와,
    상기 해석된 마크업 파일의 DOM 트리를 획득하는 단계 - 상기 DOM 트리는 적어도 하나의 부모 노드(parent node)와 복수의 자식 노드(child node)를 포함하고, 각각의 노드는 상기 표시가능한 엘리먼트 중 적어도 하나와 연관되어 있음 - 와,
    DOM 트리 내에서, 상기 표시가능한 엘리먼트가 상기 특정 표시 영역의 적어도 일부분을 포함하고 있는 자식 노드들 세트를 식별하는 단계와,
    DOM 트리 내에서, 상기 자식 노드들 세트를 포함하는 제1 부모 노드를 식별하는 단계와,
    상기 식별된 제1 부모 노드와 연관된 모든 표시가능한 엘리먼트를 마스터 이미지로 변환하는 단계와,
    상기 마스터 이미지를 포함하는 제2 부모 노드를 생성하는 단계와,
    상기 식별된 자식 노드들 세트를 삭제하고 상기 식별된 제1 부모 노드를 제2 부모 노드로 교체함으로써 상기 DOM 트리를 수정된 DOM 트리로 수정하는 단계
    를 포함하는 DOM 트리의 수정 방법.
  2. 제1항에 있어서,
    상기 수정된 DOM 트리에 따라 수정된 마크업 파일을 구성하는 단계를 더 포함하는 DOM 트리의 수정 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 마스터 이미지는 복수의 서브이미지(sub-image)로 더 분할되는 것인 DOM 트리의 수정 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    왜곡 처리(distorting), 그레이스케일 처리(greyscaling), 리인코딩(reencoding), 리사이징(resizing), 노이징(noising), 개별화(discretizing), 리샘플링(resampling) 또는 스크램블링(scrambling)과 같은 동작에 의해 상기 마스터 이미지 또는 서브이미지 중 적어도 하나를 변경하는 단계를 더 포함하는 DOM 트리의 수정 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 수정된 마크업 파일은 실행될 사용자 단말기로 하여금 사용자가 제어하는 커서(user-controlled cursor)의 위치를 정의하는 좌표 정보를 전송하게끔 적응되는 스크립트 언어 코드(scripting language code)를 더 포함하는 것인 DOM 트리의 수정 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 스크립트 언어 코드는 또한, 실행될 사용자 단말기로 하여금, 사용자가 제어하는 커서의 클릭 액션을 정의하는 액션 정보를 전송하게끔 적응되는 것인 DOM 트리의 수정 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 마크업 파일은 HTML, PHP 또는 XML 파일인 것인 DOM 트리의 수정 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    마스터 이미지를 제공하고 상기 수정된 마크업 파일을 해석하는 단계를 더 포함하는 DOM 트리의 수정 방법.
  9. 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램이 적절한 컴퓨터 디바이스 상에서 실행될 때, 제1항 내지 제8항 중 어느 한 항에 따른 방법의 단계들을 수행하기 위한 명령을 포함하는 컴퓨터 프로그램.
  10. 제1항 내지 제8항 중 어느 한 항에 따른 방법의 단계를 수행하도록 적응된 수단을 포함하는 시스템.
KR1020107025520A 2008-05-21 2009-04-20 웹 브라우저 상의 광고 표시를 선택적으로 보장하는 방법 및 시스템 KR20110009675A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08305188 2008-05-21
EP08305188.8 2008-05-21

Publications (1)

Publication Number Publication Date
KR20110009675A true KR20110009675A (ko) 2011-01-28

Family

ID=41040598

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107025520A KR20110009675A (ko) 2008-05-21 2009-04-20 웹 브라우저 상의 광고 표시를 선택적으로 보장하는 방법 및 시스템

Country Status (9)

Country Link
US (1) US8086957B2 (ko)
EP (1) EP2291804A1 (ko)
JP (1) JP5308516B2 (ko)
KR (1) KR20110009675A (ko)
CN (1) CN102027472A (ko)
CA (1) CA2695819C (ko)
IL (1) IL208791A0 (ko)
TW (1) TWI461937B (ko)
WO (1) WO2009141201A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013103926A1 (en) * 2012-01-06 2013-07-11 Microsoft Corporation Enabling performant cascading operations
KR20140127395A (ko) 2013-04-24 2014-11-04 에스케이플래닛 주식회사 광고 문서 관리를 위한 장치 및 방법
KR20150071083A (ko) * 2013-12-17 2015-06-26 에스케이플래닛 주식회사 광고 표시 시스템 및 그 방법, 그리고 이에 적용되는 장치
JP2016099942A (ja) * 2014-11-26 2016-05-30 日本電信電話株式会社 コンテンツ表示方法、コンテンツ表示装置、及びプログラム
US9971748B2 (en) 2013-12-20 2018-05-15 Samsung Electronics Co., Ltd. Method and apparatus for outputting digital content

Families Citing this family (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285590B2 (en) * 2000-06-23 2012-10-09 Ecomsystems, Inc. Systems and methods for computer-created advertisements
US7886226B1 (en) * 2006-10-03 2011-02-08 Adobe Systems Incorporated Content based Ad display control
US8868499B2 (en) * 2007-08-15 2014-10-21 Salesforce.Com, Inc. Method and system for pushing data to subscribers in an on-demand service
US8555391B1 (en) 2009-04-25 2013-10-08 Dasient, Inc. Adaptive scanning
US8516590B1 (en) 2009-04-25 2013-08-20 Dasient, Inc. Malicious advertisement detection and remediation
US9154364B1 (en) * 2009-04-25 2015-10-06 Dasient, Inc. Monitoring for problems and detecting malware
US9336319B2 (en) * 2009-09-11 2016-05-10 Ebay Inc. Data file and rule driven synchronous or asynchronous document generation
US8296183B2 (en) * 2009-11-23 2012-10-23 Ecomsystems, Inc. System and method for dynamic layout intelligence
KR101672445B1 (ko) * 2010-03-19 2016-11-04 삼성전자주식회사 컨텐츠 전송 시스템에서 컨텐츠 재생 제어 방법 및 장치
US8875285B2 (en) * 2010-03-24 2014-10-28 Microsoft Corporation Executable code validation in a web browser
US8776169B2 (en) * 2010-03-30 2014-07-08 Authentic8, Inc. Disposable browsers and authentication techniques for a secure online user environment
US9312969B2 (en) * 2010-04-15 2016-04-12 North Eleven Limited Remote server system for combining audio files and for managing combined audio files for downloading by local systems
EP2561451A4 (en) * 2010-04-19 2018-02-07 Hewlett Packard Development Company, L.P. Segmenting a web page into coherent functional blocks
CA2706743A1 (en) * 2010-06-30 2010-09-08 Ibm Canada Limited - Ibm Canada Limitee Dom based page uniqueness indentification
TWI435235B (zh) * 2010-11-04 2014-04-21 Inst Information Industry 電腦蠕蟲治療系統以及方法以及儲存電腦蠕蟲治療方法之電腦可讀取記錄媒體
EP2485161B1 (en) 2010-11-29 2019-09-25 Hughes Network Systems, LLC Computer networking system and method with javascript execution for pre-fetching content from dynamically-generated URL
US20170068728A1 (en) * 2011-01-18 2017-03-09 Netspark Ltd. Hierarchal Online-Content Filtering Device and Method
US9529896B2 (en) * 2011-01-18 2016-12-27 Netspark Ltd Hierarchical online-content filtering device and method
EP2508970B1 (en) * 2011-04-05 2015-02-25 BlackBerry Limited Electronic device and method of controlling same
WO2012144918A2 (en) * 2011-04-20 2012-10-26 IBT Internet Business Technologies - Informática, S.A. Methods and systems for real-time web tracking and marketing
US20130254649A1 (en) * 2011-06-07 2013-09-26 Michael O'Neill Establishing user consent to cookie storage on user terminal equipment
JP5210466B1 (ja) * 2011-06-17 2013-06-12 楽天株式会社 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録した記録媒体
US8700985B2 (en) * 2011-06-20 2014-04-15 Google Inc. Collecting user feedback about web pages
JP5747686B2 (ja) * 2011-06-30 2015-07-15 大日本印刷株式会社 レイアウト編集プログラム、レイアウト編集装置及びレイアウト編集方法
US8635518B1 (en) * 2011-07-21 2014-01-21 Google Inc. Methods and systems to copy web content selections
US9251287B2 (en) 2011-08-26 2016-02-02 International Business Machines Corporation Automatic detection of item lists within a web page
US8468145B2 (en) * 2011-09-16 2013-06-18 Google Inc. Indexing of URLs with fragments
US9418292B2 (en) 2011-10-04 2016-08-16 Here Global B.V. Methods, apparatuses, and computer program products for restricting overlay of an augmentation
CN102541534B (zh) * 2011-10-21 2014-09-10 鼎捷软件股份有限公司 移动设备网页窗体生成方法
US20130160120A1 (en) * 2011-12-20 2013-06-20 Yahoo! Inc. Protecting end users from malware using advertising virtual machine
US8966359B2 (en) * 2012-01-26 2015-02-24 International Business Machines Corporation Web application content mapping
WO2013169827A1 (en) * 2012-05-07 2013-11-14 Armor5, Inc. Enhanced document and event mirroring for accessing content
US9225583B1 (en) * 2012-07-31 2015-12-29 Instart Logic, Inc. Efficient delivery of content by virtualization of static interaction with the document object model
US9442912B1 (en) 2012-09-26 2016-09-13 Google Inc. Estimating the number of content items to fill an online space before distributing the content items to the online space
US9330072B1 (en) 2012-09-26 2016-05-03 Google Inc. Serving content for a space based on a probabilistic distribution
US9164966B1 (en) 2012-10-24 2015-10-20 Google Inc. Determining sizes of content items
US9171182B2 (en) 2012-10-31 2015-10-27 Tata Consultancy Services Limited Dynamic data masking
GB2507749A (en) * 2012-11-07 2014-05-14 Ibm Ensuring completeness of a displayed web page
US8826432B2 (en) 2012-12-06 2014-09-02 Airwatch, Llc Systems and methods for controlling email access
US8978110B2 (en) 2012-12-06 2015-03-10 Airwatch Llc Systems and methods for controlling email access
US9021037B2 (en) 2012-12-06 2015-04-28 Airwatch Llc Systems and methods for controlling email access
US8862868B2 (en) 2012-12-06 2014-10-14 Airwatch, Llc Systems and methods for controlling email access
US10902179B2 (en) * 2012-12-10 2021-01-26 Microsoft Technology Licensing, Llc Modification of file graphic appearance within a collection canvas
US9158800B2 (en) 2012-12-21 2015-10-13 Google Inc. Providing content items for non-standard content item slots
US9002821B2 (en) 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
US9584543B2 (en) * 2013-03-05 2017-02-28 White Ops, Inc. Method and system for web integrity validator
US20140281854A1 (en) * 2013-03-14 2014-09-18 Comcast Cable Communications, Llc Hypermedia representation of an object model
US9146972B2 (en) 2013-03-15 2015-09-29 Google Inc. Ranking of presentation modes for particular content
US8996520B2 (en) 2013-03-15 2015-03-31 Google Inc. Ranking of native application content
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US8869281B2 (en) 2013-03-15 2014-10-21 Shape Security, Inc. Protecting against the introduction of alien content
US20140283038A1 (en) 2013-03-15 2014-09-18 Shape Security Inc. Safe Intelligent Content Modification
US9338143B2 (en) 2013-03-15 2016-05-10 Shape Security, Inc. Stateless web content anti-automation
US9787686B2 (en) 2013-04-12 2017-10-10 Airwatch Llc On-demand security policy activation
US20140325338A1 (en) * 2013-04-24 2014-10-30 Yadwire Technologies Ltd. Displayable content insertion system
US9135346B2 (en) 2013-06-07 2015-09-15 Google Inc. Index data for native applications
US9398105B2 (en) * 2013-08-16 2016-07-19 Nosto Solutions Ltd. Method for providing a third party service associated with a network-accessible site using a single scripting approach
US9426234B2 (en) * 2013-08-16 2016-08-23 Nosto Solutions Ltd Method for providing a third party service associated with a network accessible site
US9311407B2 (en) 2013-09-05 2016-04-12 Google Inc. Native application search results
JP6234168B2 (ja) * 2013-10-31 2017-11-22 イクス株式会社 広告動画再生システム、及び、広告動画再生方法
US8924850B1 (en) * 2013-11-21 2014-12-30 Google Inc. Speeding up document loading
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
CA2838911C (en) 2014-01-09 2020-05-05 Ibm Canada Limited - Ibm Canada Limitee Tracking javascript actions
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9225729B1 (en) 2014-01-21 2015-12-29 Shape Security, Inc. Blind hash compression
WO2015117267A1 (en) 2014-02-07 2015-08-13 Google Inc. Systems and methods for automatically creating content modification scheme
US9608870B1 (en) 2014-02-28 2017-03-28 Google Inc. Deep link verification for native applications
US9251224B2 (en) 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
US9652508B1 (en) 2014-03-05 2017-05-16 Google Inc. Device specific adjustment based on resource utilities
US10061796B2 (en) 2014-03-11 2018-08-28 Google Llc Native application content verification
US9544329B2 (en) 2014-03-18 2017-01-10 Shape Security, Inc. Client/server security by an intermediary executing instructions received from a server and rendering client application instructions
US9645980B1 (en) 2014-03-19 2017-05-09 Google Inc. Verification of native applications for indexing
US9524347B1 (en) 2014-04-01 2016-12-20 Google Inc. Automatically implementing an application in response to a search query
US9513961B1 (en) 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
US9361635B2 (en) * 2014-04-14 2016-06-07 Yahoo! Inc. Frequent markup techniques for use in native advertisement placement
US8997226B1 (en) 2014-04-17 2015-03-31 Shape Security, Inc. Detection of client-side malware activity
US9679075B1 (en) * 2014-04-30 2017-06-13 Instart Logic, Inc. Efficient delivery of animated image files
US9507806B1 (en) 2014-04-30 2016-11-29 Instart Logic, Inc. Efficient delivery of image files
US9210171B1 (en) 2014-05-29 2015-12-08 Shape Security, Inc. Selectively protecting valid links to pages of a web site
US9083739B1 (en) 2014-05-29 2015-07-14 Shape Security, Inc. Client/server authentication using dynamic credentials
US9405910B2 (en) 2014-06-02 2016-08-02 Shape Security, Inc. Automatic library detection
US9767159B2 (en) 2014-06-13 2017-09-19 Google Inc. Ranking search results
CN106687949B (zh) 2014-06-24 2020-11-17 谷歌有限责任公司 本地应用的搜索结果
US10013496B2 (en) 2014-06-24 2018-07-03 Google Llc Indexing actions for resources
US10210263B1 (en) 2014-06-24 2019-02-19 Google Llc Native application search results
US9892190B1 (en) 2014-06-25 2018-02-13 Google Inc. Search suggestions based on native application history
WO2015200600A1 (en) 2014-06-25 2015-12-30 Google Inc. Deep links for native applications
US10409884B2 (en) * 2014-07-02 2019-09-10 The Nielsen Company (Us), Llc Methods and apparatus to identify sponsored media in a document object model
US9003511B1 (en) 2014-07-22 2015-04-07 Shape Security, Inc. Polymorphic security policy action
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US9582600B1 (en) * 2014-09-23 2017-02-28 Amazon Technologies, Inc. Cloud browser DOM-based client
US9740791B1 (en) 2014-09-23 2017-08-22 Amazon Technologies, Inc. Browser as a service
US9800602B2 (en) 2014-09-30 2017-10-24 Shape Security, Inc. Automated hardening of web page content
JP5832056B1 (ja) * 2014-10-06 2015-12-16 株式会社シンメトリック Webページの表示のためのプログラム、端末装置、およびサーバ装置
EP3021274A1 (en) * 2014-11-11 2016-05-18 Tata Consultancy Services Limited Data privacy management
JP6514897B2 (ja) * 2015-01-16 2019-05-15 Kddi株式会社 受信機、表示方法及びプログラム
CN104657474A (zh) * 2015-02-16 2015-05-27 北京搜狗科技发展有限公司 一种广告展示方法、广告查询服务器及客户端
US20160239880A1 (en) * 2015-02-17 2016-08-18 Pagefair Limited Web advertising protection system
JP6433339B2 (ja) * 2015-03-02 2018-12-05 キヤノン株式会社 情報処理システム、サーバ装置、制御方法およびプログラム
CN104768045B (zh) * 2015-03-26 2018-01-16 百视通网络电视技术发展有限责任公司 基于电视应用程序的光标控制方法及系统
US9608975B2 (en) 2015-03-30 2017-03-28 Shape Security, Inc. Challenge-dynamic credential pairs for client/server request validation
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
US10230718B2 (en) 2015-07-07 2019-03-12 Shape Security, Inc. Split serving of computer code
KR20170006432A (ko) * 2015-07-08 2017-01-18 삼성전자주식회사 웹 컨텐츠 표시 방법 및 이를 지원하는 전자 장치
US9348671B1 (en) 2015-07-23 2016-05-24 Google Inc. Monitoring application loading
US10742764B2 (en) 2015-07-27 2020-08-11 Adp, Llc Web page generation system
US10324600B2 (en) * 2015-07-27 2019-06-18 Adp, Llc Web page generation system
US10417317B2 (en) 2015-07-27 2019-09-17 Adp, Llc Web page profiler
US10579687B2 (en) * 2015-09-01 2020-03-03 Google Llc Providing native application search results with web search results
AU2016354677B2 (en) * 2015-11-13 2022-08-04 Playground (XYZ) Holdings Pty Ltd A method and system for distributing electronic publishing content
US20170237823A1 (en) * 2015-12-07 2017-08-17 Blockthrough Inc. System and method for transforming online content
CN105530248A (zh) * 2015-12-07 2016-04-27 珠海市君天电子科技有限公司 一种媒体广告拦截方法和装置
CN106407262A (zh) * 2016-08-24 2017-02-15 百度在线网络技术(北京)有限公司 信息展现方法及装置
CN106371842B (zh) * 2016-08-31 2018-10-23 北京字节跳动科技有限公司 一种网页转化跟踪方法和系统
CN107526757B (zh) * 2016-10-13 2020-04-07 腾讯科技(北京)有限公司 页面图形文件的展示方法和装置
CN107957909B (zh) * 2016-10-17 2022-01-07 腾讯科技(深圳)有限公司 一种信息处理方法、终端设备及服务器
US10437917B2 (en) 2017-04-28 2019-10-08 Microsoft Technology Licensing, Llc Web page nonintrusive content protection on user device
CN107609093B (zh) * 2017-09-08 2020-12-18 东软集团股份有限公司 一种数据库表监控方法、装置、设备和存储介质
US20190104326A1 (en) * 2017-10-03 2019-04-04 Qualcomm Incorporated Content source description for immersive media data
US10664648B2 (en) * 2017-12-08 2020-05-26 Ca, Inc. Webpage rendering using a remotely generated layout node tree
CN110020318B (zh) * 2017-12-26 2022-09-23 腾讯科技(深圳)有限公司 关键词与扩展阅读行为的处理方法、浏览器及电子设备
CN108243249B (zh) * 2018-01-04 2020-05-22 网宿科技股份有限公司 一种网页广告的防屏蔽方法、内容分发网络及客户端
CN109062543B (zh) * 2018-06-07 2022-03-15 爱云保(上海)科技有限公司 一种路由器帮助信息的优化处理系统及其方法
US10296552B1 (en) * 2018-06-30 2019-05-21 FiaLEAF LIMITED System and method for automated identification of internet advertising and creating rules for blocking of internet advertising
KR102173178B1 (ko) * 2018-08-09 2020-11-02 주식회사 고려미디어 온라인상 문서를 사용자가 보기 편리한 문서로 가공하는 방법
EP3779877A4 (en) * 2018-08-16 2021-05-26 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR DISPLAYING AND DOWNLOADING AN ADVERTISING IMAGE
US11263028B2 (en) 2019-03-27 2022-03-01 Citrix Systems, Inc. Providing user interface (UI) elements in virtual machine sessions at reduced latency
US11281478B2 (en) 2019-03-27 2022-03-22 Citrix Systems, Inc. Providing user interface (UI) elements having an ordered hierarchy of graphical control elements in virtual machine sessions at reduced latency and related methods
US11263029B2 (en) 2019-03-27 2022-03-01 Citrix Systems, Inc. Providing user interface (UI) elements having scrollable content in virtual machine sessions at reduced latency and related methods
US11509688B1 (en) * 2019-06-25 2022-11-22 NortonLifeLock Inc. Virtual ad blocking on a computing device
CN111221513B (zh) * 2020-01-03 2023-04-18 北京字节跳动网络技术有限公司 一种调整层叠样式表的方法、装置、介质和电子设备
CN111835706B (zh) * 2020-05-27 2023-11-10 深圳市胜来信息技术有限公司 浏览器恶意扩展的检验方法、装置及计算机设备
CN113283216A (zh) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 网页内容显示方法、装置、设备及存储介质
CN114896531B (zh) * 2022-04-27 2023-03-24 北京聚通达科技股份有限公司 图像处理的方法、装置、电子设备及存储介质
US20240126978A1 (en) * 2022-10-14 2024-04-18 Google Llc Determining attributes for elements of displayable content and adding them to an accessibility tree

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393407B1 (en) * 1997-09-11 2002-05-21 Enliven, Inc. Tracking user micro-interactions with web page advertising
KR100531676B1 (ko) * 2000-08-17 2005-11-30 주식회사 이노티브 통합 영상 방송 시스템
US8392827B2 (en) * 2001-04-30 2013-03-05 International Business Machines Corporation Method for generation and assembly of web page content
IE20030061A1 (en) * 2002-02-04 2003-08-06 Mobileaware Technologies Ltd Document transformation
CA2414053A1 (en) * 2002-12-09 2004-06-09 Corel Corporation System and method for manipulating a document object model
WO2005098664A1 (en) * 2004-04-08 2005-10-20 Justsystems Corporation Processing documents in multiple markup representations
US7617294B1 (en) * 2004-08-02 2009-11-10 Sun Microsystems, Inc. Method and apparatus for reducing latency involved in retrieving web page components
CN101052936A (zh) 2004-08-02 2007-10-10 佳思腾软件公司 用于在标记语言环境中将事件指派给动作的文档处理和管理方法
US7913163B1 (en) * 2004-09-22 2011-03-22 Google Inc. Determining semantically distinct regions of a document
US20060206919A1 (en) * 2005-03-10 2006-09-14 Axalto Sa System and method of secure login on insecure systems
US7409636B2 (en) * 2005-07-29 2008-08-05 Microsoft Corporation Lightweight application program interface (API) for extensible markup language (XML)
WO2007019571A2 (en) * 2005-08-09 2007-02-15 Compography, Inc. Methods and apparatuses to assemble, extract and deploy content from electronic documents
WO2007099544A2 (en) * 2006-03-01 2007-09-07 Infogin Ltd. Methods and apparatus for enabling use of web content on various types of devices
GB2443469A (en) * 2006-11-03 2008-05-07 Messagelabs Ltd Detection of image spam

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013103926A1 (en) * 2012-01-06 2013-07-11 Microsoft Corporation Enabling performant cascading operations
KR20140127395A (ko) 2013-04-24 2014-11-04 에스케이플래닛 주식회사 광고 문서 관리를 위한 장치 및 방법
KR20150071083A (ko) * 2013-12-17 2015-06-26 에스케이플래닛 주식회사 광고 표시 시스템 및 그 방법, 그리고 이에 적용되는 장치
US9971748B2 (en) 2013-12-20 2018-05-15 Samsung Electronics Co., Ltd. Method and apparatus for outputting digital content
JP2016099942A (ja) * 2014-11-26 2016-05-30 日本電信電話株式会社 コンテンツ表示方法、コンテンツ表示装置、及びプログラム

Also Published As

Publication number Publication date
US20090292984A1 (en) 2009-11-26
JP5308516B2 (ja) 2013-10-09
US8086957B2 (en) 2011-12-27
CA2695819C (en) 2018-01-02
EP2291804A1 (en) 2011-03-09
TWI461937B (zh) 2014-11-21
WO2009141201A1 (en) 2009-11-26
JP2011525272A (ja) 2011-09-15
TW201003438A (en) 2010-01-16
CN102027472A (zh) 2011-04-20
IL208791A0 (en) 2010-12-30
CA2695819A1 (en) 2009-11-26

Similar Documents

Publication Publication Date Title
US8086957B2 (en) Method and system to selectively secure the display of advertisements on web browsers
US8935609B2 (en) Method and system to secure the display of advertisements on web browsers
US8812959B2 (en) Method and system for delivering digital content
US20090158141A1 (en) Method and system to secure the display of a particular element of a markup file
Ter Louw et al. {AdJail}: Practical Enforcement of Confidentiality and Integrity Policies on Web Advertisements
US9712560B2 (en) Web page and web browser protection against malicious injections
US9324085B2 (en) Method and system of generating digital content on a user interface
US9058489B2 (en) Marking documents with executable text for processing by computing systems
KR101367928B1 (ko) 컨테이너 문서로의 원격 모듈 편입
US8516590B1 (en) Malicious advertisement detection and remediation
US8505094B1 (en) Detection of malicious URLs in a web page
US8185819B2 (en) Module specification for a module to be incorporated into a container document
US20130212465A1 (en) Postponed rendering of select web page elements
CN104766014A (zh) 用于检测恶意网址的方法和系统
Zhou et al. Understanding and monitoring embedded web scripts
CN102436455A (zh) 实现文字浏览的方法、系统和客户端浏览器
Krammer An effective defense against intrusive web advertising
CN112287349A (zh) 安全漏洞检测方法及服务端
US20170358012A1 (en) Website Content Preserver
Sonowal et al. Characteristics of Phishing Websites
Weissbacher Measurement and Detection of Security Properties of Client-Side Web Applications
Kotov et al. Optimized Mal-Ops Hack ad networks like a boss
Oda et al. Content provider conflict on the modern web
Ter Louw Towards Safe Rendering of Untrusted Third-Party Content in Existing Browsers
Yoshihama et al. Beyond XSS-Towards Universal Content Filtering

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application