인형 대사: 무두 크롬 도금 사용

4531 단어
그래픽 인터페이스가 없는 상황에서 웹 페이지를 훑어보는 것을 상상해 보세요.이것은 머리 없는 모드의 크롬입니다. 우리가 익숙하게 누르는 창이 없습니다.브라우저가 레이아웃, 이미지, 동영상 등을 처리할 필요가 없기 때문에, 머리 없는 크롬은 전방 테스트에 매우 유용하다.검색엔진과 다른 인터넷 파충류들이 온전한 페이지를 보여주지 않고 온전한 DOM에 접근할 수 있도록 한다.때때로 해커는 무헤드 모드를 사용하여 XSS 제한을 빙빙 돌려 악성 소프트웨어를 주입한다.

대합실에서


명령줄에서headless 모드를 실행할 수 있습니다.bash 단말기의 --headless 명령에 $google-chrome 표시를 추가합니다.
google-chrome --headless
너는 아무 일도 일어나지 않았다는 것을 알아차릴 것이다.Chrome의 사용자 인터페이스가 없고 명령을 입력할 터미널이 하나밖에 없습니다.dump dom 명령은 입력한 URL에 dom 전체 텍스트를 표시합니다.
google-chrome --headless --dump-dom https://example.com

니가 해봐.예를 들어 간단한 페이지라도.com에는 상당히 긴 DOM이 있기 때문에 저는 this link에 텍스트를 넣어서 글의 편폭을 늘리지 않도록 했습니다.터미널에 표시된 텍스트가 링크의 텍스트와 비슷하면 예시에 성공적으로 접근했음을 나타냅니다.com은 무두 모드에 있습니다.

꼭두각시 배우와 대결하다


헤더 없이 탐색할 때 터미널 창에만 국한되지 않습니다.일부 API에서는 JavaScript 코드에 액세스할 수 있습니다.본고는 코드에서 대부분의 브라우저 작업을 수행할 수 있는 노드 라이브러리인 Puppeter를 중점적으로 소개합니다.Puppeter를 실행하려면 버전 노드가 필요합니다.노드 v14를 사용합니다.15.4. 프로젝트에 Puppeter를 설치하려면 터미널에서 npm i puppeteer를 입력합니다.부모 디렉터리에 node_modules 폴더와 package-lock.json 폴더를 추가해야 합니다.Puppeter는 필요한 모든 의존항을 묶었기 때문에 json 파일은 약 400행장입니다. 다른 터미널 명령을 실행할 염려가 없습니다.
npm i puppeteer
JavaScript 파일을 만들고 인형 프로그램 코드를 작성하기 시작합니다.URL을 입력하여 웹 사이트의 화면 캡처를 만들 수 있습니다.우선 node require 명령을 사용하여 puppeter를 변수에 분배합니다.그리고 비동기 기능을 사용하여 Pupper를 시작하고 헤드 없는 브라우저를 열고 필요한 사이트를 탐색하고 화면 캡처를 촬영한다.마지막으로 브라우저를 닫습니다.이 예에서는 Puppeter를 위해 구글 개발자 페이지를 캡처했습니다.
const ventriloquist = require('puppeteer');

(async() => {
  const startUp = await ventriloquist.launch();
  const virtualBrowser = await startUp.newPage({headless: true});
  await virtualBrowser.goto('https://developers.google.com/web/tools/puppeteer');
  await virtualBrowser.screenshot({path: 'puppetmaster.png'});

  await virtualBrowser.close();
})();
위의 코드를 JavaScript 파일puppet.js에 입력하고 node puppet.js로 파일을 실행할 수 있습니다.실행 후 부모 디렉터리에 puppetmaster.png 라는 새 파일이 있습니다.구글이 개발자의 페이지 레이아웃이나 인형 유저 페이지의 내용을 바꿀 때까지 이렇게 보인다.

테스트


개발자는 Puppeter를 사용하여 설계의 앞면을 테스트하고 끝에서 끝까지 테스트합니다.무두 모드는 비싼 레이아웃 렌더링 없이 브라우저의 모든 기능을 실현할 수 있기 때문에 효율적인 테스트를 설정하기에 매우 적합하다.Puppeter를 사용하면 4배 빠른 클라이언트 대신 프런트엔드 서버를 테스트할 수 있습니다.인형사 테스트에 대한 세부 사항은 본고의 범위를 넘어섰지만 Akshay Kadam은Sitepoint에 인형사와 실의 끝에서 끝까지의 테스트에 관한 글을 썼다tutorial.

네트워크 인덱싱 소프트웨어


현재의 웹 페이지는 대부분 자바스크립트나 JSX로 작성되었고 HTML 페이지는 내용을 추가하거나 반응하는 데 사용되는 공백 화보 역할을 한다.이것은 웹 인덱스에 문제를 가져왔다.만약 검색엔진이 한 사이트에 대한 데이터를 수집하려고 한다면, 더 이상 HTML 페이지만 읽을 수 없다.헤더 없는 브라우저로 웹 사이트를 캡처하는 것은 HTML 파일의 내용뿐만 아니라 모든 DOM 정보를 얻는 좋은 방법이다.에릭 바이드먼(Eric Bidelman)이 상세히 소개here한다.

악용


Puppeter가 네트워크 인덱스에서 이렇게 유용하게 사용할 수 있는 동일한 기능을 해커의 잠재적인 도구로 만든다.헤더 없이 사이트에 직접 액세스하여 XSS 제한을 우회할 수 있습니다.스크립트 공격이 반드시 일어날 수는 없지만 인터넷 파충류를 쉽게 만들 수 있어 사이트의 빈틈을 대규모로 스캔할 수 있다.서버에서 헤더 없는 크롬을 차단하는 것은 일반적인 방법이 아니다.합법적인 개발자에게 404 오류를 걱정하지 않고 그 특성을 사용할 수 있다는 뜻이다.Read more Imperva에서 온 David Bekerman.

요약

  • 머리 없는 크롬 합금은 크롬 합금으로 창문을 뺀다
  • 터미널이나 API
  • 의 VS 코드로 액세스할 수 있습니다.
  • Puppeter는 노드 라이브러리로 아주 좋은 무두 API
  • 를 가지고 있다.
  • 테스트 및 웹 인덱싱을 위해 Puppeter를 사용할 수 있음
  • 인형 배우를 사용하는 일부 사람들은 잘하지 못하지만, 그들은 아직 우리 나머지 사람들을 망치지 않았다
  • Works Cited
  • 좋은 웹페이지 즐겨찾기