Kopfloser Browser
A Kopfloser Browser ist ein Webbrowser ohne ein grafische Benutzeroberfläche.
Kopflose Browser bieten automatisierte Kontrolle über eine Webseite in einer Umgebung, die den beliebten Webbrowsern ähnelt, sie werden jedoch über a ausgeführt Befehlszeilenschnittstelle oder mit Netzwerkkommunikation. Sie sind besonders nützlich für testen Webseiten, in denen sie in der Lage sind, HTML auf die gleiche Weise wie ein Browser zu rendern und zu verstehen, einschließlich Stylingelemente wie Seitenlayout, Farbe, Schriftauswahl und Ausführung von JavaScript und Ajax die normalerweise nicht verfügbar sind, wenn andere Testmethoden verwendet werden.[1]
Seit Version 59 von Google Chrome[2][3] und Version 56[4] von Feuerfuchs,[5] Es gibt native Unterstützung für die Fernbedienung des Browsers. Dies machte frühere Bemühungen insbesondere überholt Phantomjs.[6]
Anwendungsfälle
Die Hauptanwendungsfälle für kopflose Browser sind:
- Testautomatisierung in modern Web Applikationen (Webtests)
- Screenshots von Webseiten machen.
- Ausführen automatisierter Tests für JavaScript -Bibliotheken.
- Automatisierung der Interaktion von Webseiten.
Andere Verwendungen
Kopflose Browser sind auch nützlich für Web -Scraping. Google Angaben im Jahr 2009, dass die Verwendung eines kopflosen Browsers ihren Suchmaschinenindexinhalten von Websites, die AJAX verwenden, helfen könnten.[7]
Kopflose Browser wurden auch auf verschiedene Weise missbraucht:
- Ausführen DDOs Angriffe auf Websites.[8]
- Erhöhen Sie Werbeeindrücke.[9]
- Automatisieren Sie Websites auf unbeabsichtigte Weise[10] z.B. zum Anmeldeinformationen.[11]
Eine Studie über den Browserverkehr im Jahr 2018 ergab jedoch keine Präferenz von böswilligen Schauspielern für kopflose Browser.[3] Es gibt keinen Hinweis darauf, dass kopflose Browser häufiger verwendet werden als nicht mit Kopflosen Browsern für böswillige Zwecke, wie DDOS-Angriffe. SQL -Injektionen oder Cross-Site-Scripting Anschläge
Verwendungszweck
Als mehrere große Browser unterstützen den Kopflosenmodus nativ durch ApisEs gibt einige Software, um die Browserautomatisierung über eine einheitliche Schnittstelle durchzuführen. Diese beinhalten:
- Selenium Webdriver - a W3c Konforme Implementierung von Webdriver[12]
- Dramatiker - a Node.js Bibliothek zur Automatisierung von Chrom, Firefox und Webkit[13]
- Puppenspieler - a Node.js Bibliothek zur Automatisierung von Chrome[14]
Testautomatisierung
Etwas Testautomatisierungssoftware Zu den Frameworks gehören kopflose Browser als Teil ihrer Testapparate.[3]
- Capybara verwendet kopfloses Surfen, entweder über via Webkit oder kopfloses Chrom, um das Benutzerverhalten in seinen Testprotokollen nachzuahmen.[15]
- Jasmin Verwendet standardmäßig Selen, kann aber Webkit oder Headless Chrome verwenden, um Browser -Tests auszuführen.[16]
Alternativen
Ein anderer Ansatz ist die Verwendung von Software, die Browser -APIs bereitstellt. Zum Beispiel, Deno Bietet Browser -APIs als Teil seines Designs. Zum Node.js, jsdom[17] ist der vollständigste Anbieter. Die meisten sind in der Lage, gemeinsame Browserfunktionen zu unterstützen (HTML -Parsen, Kekse, Xhr, etwas Javascript usw.), sie tun es nicht machen das Dom und begrenzte Unterstützung für DOM -Ereignisse. Sie funktionieren normalerweise schneller als vollständige Browser, können jedoch viele beliebte Websites nicht korrekt interpretieren.[18][19][20]
Ein anderer ist Htmlunit, ein kopfloser Browser in Java. Htmlunit verwendet das Nashornmotor Bereitstellung von JavaScript- und AJAX -Unterstützung sowie teilweise Rendering -Fähigkeiten.[21][22]
Liste der kopflosen Browser
Dies sind verschiedene Software, die kopflose Browser -APIs bieten.
- Splash ist ein kopfloser Webbrowser, der in geschrieben wurde Python Verwendung der Webkit Layout -Motor über Qt. Es hat eine HTTP -API, Lua Scripting-Unterstützung und eingebaute Skriptträger Ipython (Jupyter) -basierte IDE. Die Entwicklung begann 2013 bei ScrapingHub. es wird teilweise finanziert von DARPA.[23][24]
- Zombie.js ist eine simulierte Browserumgebung für Node.js.[25]
- SimpleBrowser ist ein kopfloser Webbrowser, der in C# unterstützt wird .NET Standard 2.0[26]
- Dotnetbrowser ist eine proprietäre .NET-Chrombasis-Bibliothek, die den Off-Screen-Rendering-Modus bietet und ohne Einbetten oder Anzeigen von Fenstern verwendet werden kann.[27][28]
Ein weiterer erwähnter früherer Bemühungen war Envjs im Jahr 2008 von John Resig, was eine simulierte Browser -Umgebung war, die in JavaScript für die geschrieben wurde Nashornmotor.[29]
Siehe auch
Verweise
- ^ "Was ist ein kopfloser Browser?". arhg.net.
- ^ "Erste Schritte mit kopflosen Chrom". Entwickler.google.com.
- ^ a b c Bekerman, Dima (2018-11-28). "Kopfloses Chrome: DevOps lieben es, auch Hacker, hier ist, warum | Imperva". Blog. Abgerufen 2021-02-22.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ "Firefox 56 Versionsnotizen". Entwickler.mozilla.org.
- ^ "Kopfloser Modus - Browserunterstützung". Entwickler.mozilla.org.
- ^ "Schnellstart". Phantomjs.org.
- ^ Mueller, John (2009-10-07). "Offizieller Google Webmaster Central Blog: Ein Vorschlag, Ajax zu kriechbar zu machen". Offizieller Google Webmaster Central Blog.
- ^ Rawlings, Matt (2013-11-20). "Headless Browser Botnet, das in 150 Stunden DDOS -Angriff verwendet wird". Business 2 Community.
- ^ Mello Jr., John P. (2014-03-25). "Kopfloser Webverkehr bedroht die Internetwirtschaft". E -Commercetimes.com.
- ^ Raywood, Dan (2014-04-01). "Kopflose Browser: Legitime Software, die Angriff ermöglicht". ITProportal.
- ^ Mueller, Neal. "Anmeldeinformationen" Füllung ". owasp.org.
- ^ Sheth, Himanshu (2020-11-17). "Selen 4 ist jetzt W3C -konform: Alles, was Sie wissen müssen".
- ^ "Github - Dramatiker". GitHub. Abgerufen 2021-04-11.
- ^ "Github - Puppenspieler". GitHub. Abgerufen 2021-04-11.
- ^ Silva, Francisco (2019-05-29). "Von Capybara-Webkit bis hin zu kopflosen Chrom und Chromedriver". Blog | Imaginäre Wolke. Abgerufen 2021-02-22.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ Bintz, John. "Jasmine-Headless-Webkit-Der schnellste Weg, um Ihre Jasminspezifikationen auszuführen!". Johnbintz.github.io. Abgerufen 2021-02-22.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ "JSDOM bei Github - vorgeben, ein visueller Browser zu sein". GitHub. Abgerufen 2021-04-18.
- ^ "Assaf/Zombie". GitHub.
- ^ "ヘルペス が 口 や 目 うつる? 感染 し た 時 の 症状 病院 病院 の 方法 方法 とは とは". www.envjs.com. Archiviert von das Original Am 2015-02-23. Abgerufen 2015-03-13.
- ^ "JavaScriptMVC - envjs". javascriptmvc.com.
- ^ Mike Bowler. "Htmlunit - Willkommen bei htmlunit". SourceForge.net.
- ^ "Plattform (Vaadin 7.3.4 API)". vaadin.com. 6. November 2014.
- ^ "Scrapinghub/Splash". GitHub. 20. Dezember 2021.
- ^ "Archivierte Kopie". Archiviert von das Original Am 2015-05-28. Abgerufen 2015-05-28.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ "Zombie". labnotes.org.
- ^ SimpleBrowserDotnet/SimpleBrowser, SimpleBrowserDotnet, 2021-02-10, abgerufen 2021-02-22
- ^ Dotnetbrowser -Beispiele, Teamdev, 2021-03-12, abgerufen 2021-03-12
- ^ "Dotnetbrowser". Teamdev. 2021-05-05.
- ^ Ressig, John (2008-10-12). "Env-Js: Eine reine Browser-Umgebung von Pure-JavaScript" - über Github.