Verander User Agent met krul om URL-broncode te krijgen als verschillende OS & Browser

Met behulp van curl kunnen we de HTML- en CSS-broncode van elke opgegeven URL en zelfs de http-koptekstinformatie ophalen, maar sommige sites dienen volledig verschillende inhoud of HTML voor verschillende OS- en browserversies, dit wordt gedaan door hun user-agent te detecteren. Hierdoor kunnen we de user-agent van een andere browserversie en besturingssysteem spoofen, waardoor webontwikkelaars snel toegang krijgen tot die alternatieve varianten van de broncode van een site. Voor de doeleinden hier bereiken we dit vanaf de opdrachtregel met behulp van krullen.

De basissyntaxis voor het spoofing van user-agent met de curl-opdracht is als volgt:

curl -A "UserAgentString" http://url.com

Natuurlijk vervangt u UserAgentString door een legitieme user-agentstring die overeenkomt met de browser die u wilt nabootsen.

Laten we een paar voorbeelden bekijken met verschillende user agent-reeksen.

Een van de meest voorkomende situaties van verschillende bron-HTML en CSS is voor websites met uitgeklede mobiele versies. U kunt iPhone-specifieke broncode ophalen met:

curl -A "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5" http://www.apple.com

Sommige sites doen dit ook met andere browsers. Dit zou Chrome 12 zijn in Mac OS X 10.6.8:

curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" http://microsoft.com

Hier is een andere die de Mac App Store en Mac OS X 10.6.7 als een gebruikersagent vervalst en nuttig is om vanuit een script naar de App Store te vragen (meer hierover bij TUAW):

curl -silent -A "iMacAppStore/1.0.1 (Macintosh; U; Intel Mac OS X 10.6.7; en) AppleWebKit/533.20.25" http://ax.search.itunes.apple.com/

Nog een andere spoof Windows XP met Firefox 3:

curl -A "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" http://yahoo.com

U kunt user-agentstrings overal op het web vinden, maar zorg ervoor dat u ze tussen aanhalingstekens plaatst als u een site als die user-agent wilt ophalen. Als u meer wilt lezen over gebruikersagenten, heeft Wikipedia een goede naamsbekendheid.

Opmerking: dit is opzettelijk gedaan via de opdrachtregel en gericht op degenen die graag met de Terminal werken, maar er zijn eenvoudige manieren om dit te doen via standaard grafische toepassingen en webbrowsers zoals Safari, Chrome en Firefox. Safari is waarschijnlijk het eenvoudigst, omdat u verschillende gebruikersagenten rechtstreeks vanuit het ontwikkelaarsmenu kunt instellen:

Deze schermafbeelding is afkomstig uit een artikel over het ophalen van Facebook Video Chat-oproepen in OS X Lion, wat wordt bereikt door de browsergebruikeragent te wijzigen in een versie die door Facebook als compatibel wordt beschouwd.