헤드리스 브라우저
Headless browser헤드가 없는 브라우저는 그래픽 사용자 인터페이스가 없는 웹 브라우저다.
헤드리스 브라우저는 인기 웹 브라우저와 유사한 환경에서 웹페이지의 자동제어를 제공하지만, 그것들은 명령줄 인터페이스나 네트워크 통신을 통해 실행된다.그것들은 페이지 레이아웃, 색상, 자바스크립트 및 아약스와 같은 스타일링 요소를 포함하여 브라우저와 동일한 방식으로 HTML을 렌더링하고 이해할 수 있기 때문에 웹 페이지 테스트에 특히 유용하다.[1]
구글 크롬[2][3] 59 버전과 파이어폭스 56 버전부터[4] 브라우저의 원격 제어를 위한 기본 지원이 있다.[5]이것은 이전의 노력을, 특히 팬텀을 더 이상 쓸모 없게 만들었다.JS.[6]
사용 사례
헤드리스 브라우저의 주요 사용 사례는 다음과 같다.
기타 용도
헤드리스 브라우저는 웹 스크래핑에도 유용하다.구글은 2009년에 헤드리스 브라우저를 사용하는 것이 아약스를 사용하는 웹사이트의 검색 엔진 콘텐트를 색인화하는 데 도움을 줄 수 있다고 발표했다.[7]
헤드리스 브라우저는 또한 다양한 방법으로 악용되었다.
그러나 2018년 브라우저 트래픽 연구에서는 악성 행위자들이 헤드리스 브라우저를 선호하지 않는 것으로 나타났다.[3]헤드리스 브라우저가 DDoS 공격, SQL 주입, 사이트 간 스크립팅 공격 등 악성 목적으로 비헤드리스 브라우저보다 더 자주 사용된다는 징후는 없다.
사용법
여러 주요 브라우저가 API를 통해 기본적으로 헤드리스 모드를 지원하므로, 통합 인터페이스를 통해 브라우저 자동화를 수행하는 소프트웨어가 존재한다.여기에는 다음이 포함된다.
- Selenium WebDriver - W3C 호환 WebDriver[12] 구현
- 극작가 - Chromium, Firefox 및 WebKit[13] 자동화를 위한 Node.js 라이브러리
- Puppeteer - Chrome[14] 자동화를 위한 Node.js 라이브러리
테스트 자동화
일부 테스트 자동화 소프트웨어와 프레임워크는 테스트 기구의 일부로 머리 없는 브라우저를 포함한다.[3]
- Capybara는 테스트 프로토콜에서 사용자 행동을 모방하기 위해 웹킷 또는 Headless Chrome을 통해 머리 없는 브라우징을 사용한다.[15]
- 자스민은 기본적으로 셀레니움을 사용하지만 웹킷이나 헤드리스 크롬을 사용하여 브라우저 테스트를 실행할 수 있다.[16]
대안
또 다른 접근법은 브라우저 API를 제공하는 소프트웨어를 사용하는 것이다.예를 들어, Deno는 그것의 설계의 일부로 브라우저 API를 제공한다.Node.js의 경우 jsdom이[17] 가장 완전한 제공자다.대부분은 일반적인 브라우저 기능(HTML 구문 분석, 쿠키, XHR, 일부 자바스크립트 등)을 지원할 수 있지만 DOM을 렌더링하지 않고 DOM 이벤트에 대한 지원이 제한적이다.그들은 보통 전체 브라우저보다 더 빨리 작동하지만, 많은 인기 있는 웹사이트를 올바르게 해석할 수는 없다.[18][19][20]
또 다른 것은 자바어로 쓰여진 머리 없는 브라우저인 HTMLUnit이다.HTMLUnit은 Rhino 엔진을 사용하여 JavaScript와 Ajax 지원뿐 아니라 부분 렌더링 기능도 제공한다.[21][22]
헤드리스 브라우저 목록
이것들은 헤드가 없는 브라우저 API를 제공하는 다양한 소프트웨어들이다.
- 스플래시는 Qt를 통해 WebKit 레이아웃 엔진을 사용하여 Python으로 작성된 헤드리스 웹 브라우저다.HTTP API, Lua 스크립팅 지원, 내장 IPython(Jupyter) 기반 IDE. 개발은 2013년 ScrapingHub에서 시작되었으며, DARPA의 자금 일부를 지원하고 있다.[23][24]
- 좀비.js는 Node.js를 위한 시뮬레이션된 브라우저 환경이다.[25]
- SimpleBrowser는 C# supporting 로 작성된 헤드리스 웹 브라우저 입니다.NET 표준 2[26].0
- DotNetBrowser는 소유권 입니다.비화면 렌더링 모드를 제공하고 창을 포함하거나 표시하지 않고도 사용할 수 있는 NET 크롬 기반 라이브러리.[27][28]
또 다른 주목할 만한 초기 노력은 2008년 Rhino 엔진을 위해 자바스크립트로 작성된 시뮬레이션 브라우저 환경이었던 John Resig의 환경이었다.[29]
참고 항목
참조
- ^ "What is a headless browser?". arhg.net.
- ^ "Getting Started with Headless Chrome". developers.google.com.
- ^ a b c Bekerman, Dima (2018-11-28). "Headless Chrome: DevOps Love It, So Do Hackers, Here's Why Imperva". Blog. Retrieved 2021-02-22.
{{cite web}}
: CS1 maint : url-status (링크) - ^ "Firefox 56 release notes". developer.mozilla.org.
- ^ "Headless mode - browser support". developer.mozilla.org.
- ^ "Quick Start". phantomjs.org.
- ^ Mueller, John (2009-10-07). "Official Google Webmaster Central Blog: A proposal for making AJAX crawlable". Official Google Webmaster Central Blog.
- ^ Rawlings, Matt (2013-11-20). "Headless Browser Botnet Used in 150 hour DDoS attack". Business 2 Community.
- ^ Mello Jr., John P. (2014-03-25). "Headless Web Traffic Threatens Internet Economy". ecommercetimes.com.
- ^ Raywood, Dan (2014-04-01). "Headless browsers: legitimate software that enables attack". ITProPortal.
- ^ Mueller, Neal. "Credential stuffing". owasp.org.
- ^ Sheth, Himanshu (2020-11-17). "Selenium 4 Is Now W3C Compliant: All You Need To Know".
- ^ "GitHub - Playwright". GitHub. Retrieved 2021-04-11.
- ^ "Github - Puppeteer". GitHub. Retrieved 2021-04-11.
- ^ Silva, Francisco (2019-05-29). "From capybara-webkit to Headless Chrome and ChromeDriver". Blog Imaginary Cloud. Retrieved 2021-02-22.
{{cite web}}
: CS1 maint : url-status (링크) - ^ Bintz, John. "jasmine-headless-webkit -- The fastest way to run your Jasmine specs!". johnbintz.github.io. Retrieved 2021-02-22.
{{cite web}}
: CS1 maint : url-status (링크) - ^ "JSDOM at GitHub - Pretending to be a visual browser". GitHub. Retrieved 2021-04-18.
- ^ "assaf/zombie". GitHub.
- ^ "ヘルペスが口や目からうつる?感染した時の症状と病院の治療方法とは". www.envjs.com. Archived from the original on 2015-02-23. Retrieved 2015-03-13.
- ^ "JavaScriptMVC - EnvJS". javascriptmvc.com.
- ^ Mike Bowler. "HtmlUnit – Welcome to HtmlUnit". sourceforge.net.
- ^ "Platform (Vaadin 7.3.4 API)". vaadin.com. 6 November 2014.
- ^ "scrapinghub/splash". GitHub. 20 December 2021.
- ^ "Archived copy". Archived from the original on 2015-05-28. Retrieved 2015-05-28.
{{cite web}}
: CS1 maint: 타이틀로 보관된 사본(링크) - ^ "Zombie". labnotes.org.
- ^ SimpleBrowserDotNet/SimpleBrowser, SimpleBrowserDotNet, 2021-02-10, retrieved 2021-02-22
- ^ DotNetBrowser Examples, TeamDev, 2021-03-12, retrieved 2021-03-12
- ^ "DotNetBrowser". TeamDev. 2021-05-05.
- ^ Resig, John (2008-10-12). "env-js: A pure-JavaScript browser environment" – via GitHub.