MS-Office-Forum

Zurück   MS-Office-Forum > Programmierung und Entwicklung (Allgemein) > Web-Programmierung
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 24.09.2019, 13:37   #1
Fennek11
MOF Profi
MOF Profi
Standard JS - Headers

Hallo,

wie kann man in Firefox die Response- und Request-Header der besuchten Web-Seite auslesen?

In Analogie zu Stackoverflow habe ich das versucht:

Code:

<!DOCTYPE html>
<html>
<head>
<script  type="text/javascript">
         
function iHead() {
alert('in Script');
var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
alert(headers); 
}

</script>
</head>

<body onload='iHead()'>
      <p>Hello</p>
      <script>
alert('Ok');
	</script>
</body>
</html>
So nicht!

Wie kann man auf einen anderen Tab zu greifen?

mfg
Fennek11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.09.2019, 15:33   #2
derHoepp
MOF Profi
MOF Profi
Standard

Moin,

da ist es doch am allereinfachsten, einfach mit F12 die eingebaute FireFox-Analyse aufzurufen.
F12-Taste, Bereich "Netzwerkanalyse", ggf. Neu Laden, die Statuszeile anklicken und schon kannst du im "aufploppenden" Seitenfenster die Antwortkopfzeilen sehen.

Viele Grüße
derHöpp
derHoepp ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.09.2019, 15:44   #3
Fennek11
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hallo,

die Idee ist es aus einer Textdatei duzende von URL's einzulesen, Firefox die Seite öffnen zu lassen und dabei die Header auszulesen und die Ergebnsse zu speichern.

Z.B. mit cmd>CURL geht dies sehr einfach, die Frage bleibt aber, ob der Browser wegen des Caches sich anderst verhält.

Die Ausgangsfrage ist, ob Webseiten mit der ETag Besucher tracken. Dabei sind die Request-Header des Browsers entscheidend.

mfg
Fennek11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2019, 09:04   #4
derHoepp
MOF Profi
MOF Profi
Standard

Moin,

Javascript als Tool für eine Massenverarbeitung kommt mir momentan etwas merkwürdig vor, aber in VBA würde ich so vorgehen:
PHP-Code:

Option Explicit

Sub testen
()
    
Dim i As Long
    
    
For 1 To Tabelle1.Cells(Rows.Count1).End(xlUp).Row
        Tabelle1
.Cells(i2) = GetHeaders(Tabelle1.Cells(i1))
    
Next i
End Sub

Function GetHeaders(url As String)
    
Dim http As MSXML2.XMLHTTP60
    
    With CreateObject
("MSXML2.XMLHTTP")
        .
Open "GET"url
        
.send
        Dim timbef
        timbef 
Timer
        
Do While .readystate <> And Timer timbef 8
            DoEvents
        Loop
        
        
If .readystate <> 4 Then Or .Status <> 200 Then
            GetHeaders 
= -1
        
Else
            
GetHeaders = .getAllResponseHeaders
        End 
If
        
    
End With
End 
Function 
Viele Grüße
derHöpp
derHoepp ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.09.2019, 11:06   #5
Fennek11
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hallo,

danke.

VBA verlangt im Gegensatz zu curl sehr präzise Eingaben der URL, also mit "http" oder "https".

Bei einige Webseiten, relativ wenigen, wird das ETag der Favicon.ico auf das Datum der Anfrage gesetzt (ETag enthält einen Unix-Zeitstempel). Damit ist ein Wiedererkennen eines Users sekunden genau möglich. Bis jetzt habe ich noch keine überzeugende Prüfung gefunden zu testen, ob das wirklich gemacht wird,

Hier der Code mit kleinen Anpassungen:

Code:

'Option Explicit

Sub testen()
    Dim i As Long
    Dim http As Object 'MSXML2.XMLHTTP60
    
    With CreateObject("MSXML2.XMLHTTP")
    
    For i = Cells(Rows.Count, 2).End(xlUp).Row + 1 To Cells(Rows.Count, 1).End(xlUp).Row - 1
        
        .Open "GET", CStr(Cells(i, 1)), False
        .send
        Dim timbef
        timbef = Timer
        Do While .readystate <> 4 And Timer - timbef < 3
            DoEvents
        Loop
        
        If .Status <> 200 Then
            
            Cells(i, 2) = .Status
        Else
            Debug.Print Cells(i, 1) & vbNewLine, .getAllResponseHeaders
            
            Cells(i, 2) = .GetResponseHeader("ETag")
            Cells(i, 3) = .GetResponseHeader("Last-Modified")
            Cells(i, 4) = .GetResponseHeader("Date")
            Cells(i, 5) = .GetResponseHeader("Server")
            
        End If
        
    Next i
    End With
    
    Set http = Nothing
End Sub

Sub http()
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Left(Cells(i, 1), 4) <> "http" Then Cells(i, 1) = "https://" & Cells(i, 1)
Next i
End Sub
mfg
Fennek11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.09.2019, 14:14   #6
Fennek11
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hallo,

ein Beispiel für die "merkwürdigen" ETags ist "https://www.techradar.com".

Es ist nicht möglich die Seite "an zu-ping-en" oder die traceroute zu ermiteln.

Hoffentlich zeige ich keine privaten Daten:

Code:

C:Usersxxxx>curl -I https://www.techradar.com/favicon.ico
HTTP/1.1 200 OK
Date: Thu, 19 Sep 2019 10:11:36 GMT
Content-Type: image/x-icon
Content-Length: 318
Last-Modified: Tue, 17 Sep 2019 11:46:51 GMT
ETag: "5d80c7ab-13e"
Expires: Sat, 19 Oct 2019 10:11:36 GMT
Cache-Control: max-age=2592000
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type
Age: 601766
X-Country-Code: US
X-FTR-Cache-Status: HIT
X-FTR-Expires: Sat, 19 Oct 2019 10:11:36 GMT
Set-Cookie: FTR_Country_Code=DE; path=/; domain=www.techradar.com
X-Country-Code-Real: DE
Accept-Ranges: bytes
X-FTR-Request-ID: 00000000:C787_00000000:01BB_5D8C82FE_CD4FB5:1311
X-FTR-Realm: pip
X-FTR-DC: TC
X-FTR-Balancer: fteproxyred
X-FTR-Backend: www-live-sites-varnish
X-FTR-Backend-Server: ftevarnishprodgreen
Normalerweise ist das "Date" der Zeitpunkt der Abfrage, hier aber ca 2 Tage früher. Auch mit verschiedenen PC's und DSL-Leitungen ist die ETag gleich, das würde gegen ein tracking sprechen.

Wenn man in Firefox "www.tachradar.com" aufruft und mit "inspect element" die header prüft, sieht man ein Image 1x1 von footprint.com.

Wie funktioniert das tracking dieser Seite?

mfg
Fennek11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.09.2019, 16:06   #7
derHoepp
MOF Profi
MOF Profi
Standard

Hmm..

ich weiß nicht, warum du hinter der Favicon und E-Tag technik böse Geister siehst. Prinzipiell kennzeichnet der ETag eine Eindeutigkeit für eine Version einer Entität (hier eine .ico-Datei). Erfunden wurde das ganze dafür, damit Clients Caches verwenden können um den Datenstrom klein zu halten. Im FireFox werden FavIcons unter einer eigenen ID gespeichert, die (wenn mich nicht alles täuscht) aus de URL und dem E-Tag generiert wird. Findet FireFox unter dieser Kombination kein FavIcon, wird es neu geladen.

Ich seh da keine sinnvolle Möglichkeit User zu tracken. Deine IP-Addresse wird auch so bei einem http-Call übermittelt. Ob dein Ziel nun ein HTML-Stream ist, oder eine Bilddatei, macht da doch kein Unterschied.

Viele Grüße
derHöpp
derHoepp ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.09.2019, 17:04   #8
Fennek11
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hallo,

wenn man im http-Protokoll nach Möglichkeiten des User-trackings sucht, gibt es m.W.n. nur 2 Ansätze:

Der Server muss etwas eindeutiges auf den Client möglichst permanent schreiben können und der Client muss es zurück senden.

Allgemein bekannt sind Cookies und sogar gesetzlich geregelt.

Die eigentliche Funktion der ETags wird bei Favicons mangels Änderung nicht benötigt und zumindest Firefox speichert sie getrennt und löscht nicht immer, wenn der normale Cache gelöscht wird.

Damit ist es ein idealer Ansatz, im Netz ist allgemein bekannt, dass das vor Jahren einmal umgesetzt wurde.

Beim ersten Besuch bekommt der Client eine eindeutige Nummer, bei weiteren Besuchen wird die Frage "if not match" mit nein beantwortet.

Meine Frage ist aber nicht, ob das möglich ist, sodern ob ein User ohne Zugang zum Server das erkennen kann.

Ein Ansatz wäre es dieselbe Seite 2x mit zwei PC's aufzurufen und die header zu vergleichen. Bei meinen Versuchen habe ich aber nicht bedacht

- das Datum des ersten Aufrufs zu notieren
- mögliche Einflüsse von 'load-balancer'

(Fast) alle ETag's enthalten einen Unix Zeitstempel (in Hex-Format, 8 Zeichen, 4 bytes) und erfüllen damit die Bedingungen, sofern der Zeitpunkt des ersten Besuchs codiert wird. Es ist aber auch ein beliebiger Code programmierbar.

Meine Tests ergaben bisher keinen "Beweis", aber Merkwürdigkeiten, vermutlich aber load-balencer oder Cloud (Beispiel oben)

mfg

(mit Java gibt es sicher bessere Ansätze zum tracken)
(Microsoft mit dem Test auf Connectivity beim booten, oder Google mit "safe-browsing" sind da in einer extrem guten Position)
(meine Familie nennt mich manchmal 'paranoid', aber Snowden war "mehr als erwartet")
Fennek11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 2 (Registrierte Benutzer: 0, Besucher: 2)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.