Favicon

Alle anderen Themen ...

Moderator: ModerationP

Favicon

Beitragvon Fennek » 06. Sep 2019, 19:57

Hallo,

Firefox speichert unter

Code: Alles auswählen
C:\Users\x x x \AppData\Local\Mozilla\Firefox\Profiles\y y y .default\jumpListCache


Favicons von besuchten Webseiten auch permanent ab. Ein Beispiel (die Namen der Seiten wurden von Hand zugefügt)

Code: Alles auswählen
06.09.2019  08:47            11.660 1ckM98YHtGhF27glGk3Qvg==.ico Spiegel
06.09.2019  08:51             5.916 28TfSUkH0BhI9frSTZ_P3w==.ico Stern
06.09.2019  08:25               303 ahie3KBRQDSwfwNfz75NmQ==.ico CEF, auch NETBOOK
06.09.2019  08:53            26.817 guEveO+zHnp3sgPQeleB7Q==.ico TVInfo
06.09.2019  08:43            11.660 WLeSrTMpkaZwUrBrqbKtjg==.ico Spiegel, auch NETBOOK
06.09.2019  08:49               487 YD0ZXN0GrN5MQAR34lOu+Q==.ico VBAForum
06.09.2019  08:47               560 yWi4uHg73Oy0FQYzym2fFg==.ico MOF, auch NETBOOK
06.09.2019  08:49             3.574 zO4tvK05qjQng83lxx0hNg==.ico Herber


Mit dem hash des Icons kann die Webseite eindeutig identifiziert werden, d.h. die Dateinamen könnten die besuchten Unterseite bezeichnen. Oft können die Dateinamen ("1ckM98YHtGhF27glGk3Qvg==") mit Base64 decodiert werden, bei wenigen Test waren es "chinesische Zeichen", also Unicode mit 16 bytes.

Fragen:

- kann man die Dateinamen der Icons "entschlüsseln"?
- kann die Webseite die Icon, insbesondere die Dateinamen auslesen?
- warum erschwert Firefox das Löschen ?
- auf 2 PC's gab es gleiche Datei-Namen für gleiche Webseite, also ein tracking des Users ist wohl damit nicht gewollt, aber ein Profiling von Interessen?

Allgemein, warum gibt sich Mozilla so viel Mühe, wozu werden diese Icons genutzt?


Meine Versuche mit einer Suchmaschine waren unergiebig.

Danke
Benutzeravatar
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 726
Registriert: 12. Feb 2016, 18:56

Re: Favicon

Beitragvon mumpel » 06. Sep 2019, 20:09

Hallo!

Fennek hat geschrieben:(...) wozu werden diese Icons genutzt? (...)

Das Favicon (shortcut icon) ist das Icon, welches im Tab der Seite angezeigt wird (links neben dem Seitentitel). Es soll eine Webseite auf wiedererkennbare Weise kennzeichnen. Dieses Forum z.B. hat kein Favicon. Die Favicon löschen nützt nicht, das sie mit jedem Laden der Seite erneut geladen werden. Das Favicon dient nicht der Identifizierung der Seitenbesucher. Geladen wird es über den Header (Beispiel auf meiner Seite: <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon"> ), oder über die "favicon.ico" im Root-Verzeichnis.

Gruß, René
Benutzeravatar
mumpel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8219
Registriert: 09. Jan 2005, 15:20
Wohnort: Lindau (B)

Re: Favicon

Beitragvon Fennek » 07. Sep 2019, 16:16

Hallo,

die Dateinamen des Favicon's in der Firefox \local\...\Firefox\Profile\jumpListCache werden aus der URL der Webseite mit MD5 -> Base64 gebildet, zumindest solange nicht unsichtbare Zusätze wie index.php oä vorhanden sind. Damit ist eine Umkehrung, vom Namen des Icons zur Webseite nur sehr schwer möglich.

Es muss ein "Verfalldatum" eingestellt sein: meistens, aber nicht immer, werden die Icons nach 24 Stunden gelöscht. Es werden auch nicht alle besuchten Unterseiten angezeigt.

Nach einigen Anläufen half dieser Code:

Code: Alles auswählen
Sub T_1()
Debug.Print MD5("https://www.clever-excel-forum.de/Forum-Excel", True)
End Sub

'---> ahie3KBRQDSwfwNfz75NmQ==

Public Function MD5(ByVal sIn As String, Optional bB64 As Boolean = 0) As String
    'Set a reference to mscorlib 4.0 64-bit
   
    'Test with empty string input:
    'Hex:   d41d8cd98f00...etc
    'Base-64: 1B2M2Y8Asg...etc
       
    Dim oT As Object, oMD5 As Object
    Dim TextToHash() As Byte
    Dim bytes() As Byte
       
    Set oT = CreateObject("System.Text.UTF8Encoding")
    Set oMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
 
    TextToHash = oT.GetBytes_4(sIn)
    bytes = oMD5.ComputeHash_2((TextToHash))
 
    If bB64 = True Then
       MD5 = ConvToBase64String(bytes)
    Else
       MD5 = ConvToHexString(bytes)
    End If
       
    Set oT = Nothing
    Set oMD5 = Nothing

End Function

Private Function ConvToBase64String(vIn As Variant) As Variant

    Dim oD As Object
     
    Set oD = CreateObject("MSXML2.DOMDocument")
      With oD
        .LoadXML "<root />"
        .DocumentElement.DataType = "bin.base64"
        .DocumentElement.nodeTypedValue = vIn
      End With
    ConvToBase64String = Replace(oD.DocumentElement.Text, vbLf, "")
   
    Set oD = Nothing

End Function

Private Function ConvToHexString(vIn As Variant) As Variant

    Dim oD As Object
     
    Set oD = CreateObject("MSXML2.DOMDocument")
     
      With oD
        .LoadXML "<root />"
        .DocumentElement.DataType = "bin.Hex"
        .DocumentElement.nodeTypedValue = vIn
      End With
    ConvToHexString = Replace(oD.DocumentElement.Text, vbLf, "")
   
    Set oD = Nothing

End Function


mfg
Benutzeravatar
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 726
Registriert: 12. Feb 2016, 18:56

Re: Favicon

Beitragvon mumpel » 07. Sep 2019, 16:24

Die Einträge im jumplistCache gehören meines Wissens zu den Sprunglisten, haben also nicht direkt was mit den Internetseiten bzw. dessen Abfragen zu tun. Da musst Du Dir also keine Gedanken um Datenschutz machen. :wink:
Benutzeravatar
mumpel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8219
Registriert: 09. Jan 2005, 15:20
Wohnort: Lindau (B)

Re: Favicon

Beitragvon Fennek » 09. Sep 2019, 14:59

Hallo,

noch habe ich nicht verstanden, warum Firefox Favicon's in dieser Art behandelt.

Da die Favicon's unverändert bleiben, könnte die ETag für eine User-Identifikation genutzt werden, aber da es wesentlich einfachere Ansätze geben dürfte, ist es zweifelshaft, ob das gemacht wird.

Ausgehend von der URL kann der Dateiname des Favicon in \local\... Firefox\Profile\...\jumplistcache mit Powershell recht einfach gerechnet werden:

Code: Alles auswählen
$Str = "https://www.clever-excel-forum.de/Thread-Automatisch-Ordner-erstellen-mit-Zellenname"

$md5 = new-object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
$utf8 = new-object -TypeName System.Text.UTF8Encoding

$Enc = [Convert]::ToBase64String($md5.ComputeHash($utf8.GetBytes($Str)))

write-host "`n"  $Str   $Enc


mfg

(Edit: Google fand diesen link: https://stackoverflow.com/questions/168 ... -a-website)
Benutzeravatar
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 726
Registriert: 12. Feb 2016, 18:56

Re: Favicon: TREFFER

Beitragvon Fennek » 10. Sep 2019, 08:53

Hallo,

bei Test scheint es, dass 2 Webseiten des kleinen Samples ETags des Favicon's für ein User-Tracking einsetzen:

Code: Alles auswählen
76: https://www.blog.google/favicon.ico "p-BApg" 09/08/2019 12:32:48
76: https://www.blog.google/favicon.ico "oN7E5w" 09/10/2019 09:25:38

87: https://www.startpage.com/graphics/favicon/sp-favicon-16x16.png "540-5841d70169740" 09/08/2019 12:32:50
87: https://www.startpage.com/graphics/favicon/sp-favicon-16x16.png "540-5864c2e4d2f00" 09/10/2019 09:25:40

>>> in Firefox: "540-5841d716648c0"

90: https://www.startpage.com/graphics/favicon/sp-favicon-196x196.pngg "7afa-59208305d9eee" 09/08/2019 12:32:50
90: https://www.startpage.com/graphics/favicon/sp-favicon-196x196.pngg "7afa-5922dcf42b525" 09/10/2019 09:25:41

>>> in Firefox: "4043-5841d70169740"


Der Ansatz war es ohne Browser die Etags an 2 Tagen abzufragen und zu vergleichen:

Code: Alles auswählen

in ReadLine.txt: die URLs, z.B. https://www.blog.google/favicon.ico

in Powershell:

$userAgent = "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
$i = 0
foreach($url in Get-Content .\readline.txt) {

$hd = ""
$hd = (iwr $url -UserAgent $userAgent).headers
$Tag = date
$i = $i + 1
$n = [string]$i + ": " + $url + " " + $hd.Item('ETag') + " " + $Tag
$n | Out-File ./ETag.txt -Append
$n = "------"
}
$n | Out-File ./ETag.txt -Append


Die Sammlung der URL's zu erstellen, ist etwas mühsam, hier wurde nur die Datei %AppData%\Firefox\...\Favicon.sqlite ausgelesen.

Falls jemand andere "Datenkraken" positiv testet, wäre ein feedback nett.

mfg

(Edit: hier auch: https://googleprojectzero.blogspot.com/favicon.ico )
Zuletzt geändert von Fennek am 14. Sep 2019, 13:26, insgesamt 1-mal geändert.
Benutzeravatar
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 726
Registriert: 12. Feb 2016, 18:56

Re: Favicon

Beitragvon mumpel » 10. Sep 2019, 13:36

Hast Du schon einmal versucht, den Zugriff auf diesen Ordner zu entziehen?
Benutzeravatar
mumpel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8219
Registriert: 09. Jan 2005, 15:20
Wohnort: Lindau (B)

Re: Favicon

Beitragvon Fennek » 13. Sep 2019, 12:36

@Mumpel:

ja, nach Abschluß dieses "Projektes" werde ich den Ordner schreib-schützen.

Bei einer zusätzlichen Analyse der HTML-header bin ich darauf gestoßen:

Powershell:
Code: Alles auswählen
$userAgent = "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"

$url = "https://pictures.tvinfo.net/img/tvinfo.ico.192.png"

$HD = (iwr $URL -UserAgent $userAgent -Method Head).headers

Write-Output $URL, $HD


In den Headers "X-Amz-Cf-Pop" und "CF-RAY" sind Kürzel, die sich auf die Stadt beziehen könnte. Kann jemand prüfen, ob diese Stadt in seiner näheren oder weiteren Umgebung liegt? (für VPN bin ich zu ungeschickt)?

Danke

mfg

(falls der Code in einer *.PS1 Datei gespeichert wird, startet der Code mit ./Name.ps1)
Benutzeravatar
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 726
Registriert: 12. Feb 2016, 18:56

Re: Favicon

Beitragvon Fennek » 20. Sep 2019, 08:18

Hallo,

da die Favicon nicht oder nur bei einen Relaunch geändert werden, sollte es keine bzw seltene Änderungen geben. Aber weit gefehl: viele Webseiten ändern den ETag recht häufig (monatlich/täglich) und prüfen.

Einige Seiten prüfen den UserAgent und liefern, insbesondere bei Python, andere Etags aus (theGuardian.com, php.net, meistesn wird geblockt)

Für eine Analyse hat sich "curl -I https://www.theguardian.com/favicon.ico" (Win 10; Linux) als günstig gezeigt. Es werden alle Header ausgelesen, die mit VBA recht gut und flexible ausgewertet werden können.

Gibt es hier jemand mit Erfahrungen in der Webseiten-Entwicklung, der dir Gründe für diesen Aufwand erklären könnte?

mfg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 726
Registriert: 12. Feb 2016, 18:56

Re: Favicon

Beitragvon Fennek » 24. Sep 2019, 10:59

Hallo,

wenn man in DuckDuckGo die Suchworte "ETag Apache nginx" eingibt, behaupten einige der Treffer, dass diese Server ETag's als "Kennziffer oder Hash" errechnen.

In den meisten Fällen entsprechen Teile der ETag's dem Unix-Zeitstempel in Hex-Schreibweise.
Unix in Hex
'1.1.2002: 1009843200 (0x3c30fc00)
'1.1.2020: 1577836800 (0x5e0b3100)

Date GMT (Aufruf) Etag Lmodified ETag Zeit
23.09.2019 14:15 5d79158d-0 11.09.2019 15:41 11.09.2019 15:41
23.09.2019 14:05 4ab77a74-47e 21.09.2009 13:07 21.09.2009 13:07
23.09.2019 14:06 50faba64-1536 19.01.2013 15:23 19.01.2013 15:23
23.09.2019 14:07 534cdbcd-3aee 15.04.2014 07:12 15.04.2014 07:12
23.09.2019 14:05 0-46bd9860e4500 08.06.2009 17:25 11.08.2007 11:07
23.09.2019 14:06 161134181ccf1:0 08.01.2014 14:52 29.10.2004 04:54
23.09.2019 14:06 80c3d23445c3cd1:0 15.11.2012 15:23 06.05.2006 06:06
23.09.2019 14:10 W/"59e874b7-1976" 19.10.2017 09:47 19.10.2017 09:47
23.09.2019 14:04 4acfd4dd-1cee-3b4c42ba5ae40 21.01.2003 20:06 10.10.2009 00:27
23.09.2019 14:15 5ddea9d7-2158-48a1-8070-8d751ee3fa09 08.09.2019 05:27 27.11.2019 16:52
23.09.2019 14:05 f20e32-37e-4a4d02e03dac0 03.06.2011 15:12 02.07.2009


Damit können Server, die beim ersten Besuch das Flavicon mit dem Stempel der aktuelle Zeit ausliefern, Besucher wieder erkennen. Ob auf dem Server entsprechende Datenbanken laufen, ist für den User nicht zu erkennen.

mfg

(der Code für die Analyse der ETag:

Code: Alles auswählen
Attribute VB_Name = "ETag"
Option Explicit

'Zeitformat: Mon, 10 Jun 2019 07:41:26 GMT
'1.1.2002: 1009843200 (0x3c30fc00)
'1.1.2020: 1577836800 (0x5e0b3100)

Sub ETag_Analyse()
 Dim ET As String
 Dim Sp As Long, Ot As Long, i As Long, k As Integer
 Dim AzDash As Integer
 Dim Zt
 
 Sp = ActiveCell.Column '<<<<<< Auswahl
 Ot = 13 ' Spalte der Ausgabe
 
 For i = 2 To Cells(Rows.Count, Sp).End(xlUp).Row
If i = 19 Then Stop
    ET = Cells(i, Sp)
    ET = Replace(ET, Chr(34), "")
    If T_Hx(ET) Or Len(ET) < 8 Then GoTo Nn
    AzDash = Len(ET) - Len(Replace(ET, "-", ""))
        Select Case AzDash
            Case Is = 0
                If Left(ET, 1) >= 3 And Left(ET, 1) <= 5 Then
                    Cells(i, Ot) = Unix(Left(ET, 8))
                Else
                    Cells(i, Ot) = Unix(Left(ET, 8))
                    Cells(i, Ot).Interior.Color = vbYellow
                    If Year(Cells(i, Ot)) < 1990 And InStr(1, ET, ":") > 0 Then
                        Cells(i, Ot) = Unix(Right(Split(ET, ":")(0), 8))
                        Cells(i, Ot).Interior.Color = vbRed
                    End If
                End If
            Case Is = 1
                Zt = Split(ET, "-")
                For k = 0 To UBound(Zt)
                    If Len(Zt(k)) > 7 And _
                        Left(Zt(k), 2) >= "3c" And _
                        Left(Zt(k), 2) <= "5e" Then Cells(i, Ot) = Unix(Zt(k)): Exit For
                   
                Next k
            Case Is = 2
                If Not T2Hx(Left(ET, 8)) Then
                    Cells(i, Ot) = Unix(Left(ET, 8))
                    Cells(i, Ot).Interior.Color = vbGreen
                    If Year(Cells(i, Ot)) < 2000 Then
                        If Not T2Hx(Left(Split(ET, "-")(2), 8)) Then
                            Cells(i, Ot) = Unix(Left(Split(ET, "-")(2), 8))
                            Cells(i, Ot).Interior.Color = rgbBisque
                        End If
                    End If
                ElseIf Not T2Hx(Left(Split(ET, "-")(2), 8)) Then
                    Cells(i, Ot) = Unix(Left(Split(ET, "-")(2), 8))
                            Cells(i, Ot).Interior.Color = rgbBisque
                Else: Cells(i, Ot).Interior.Color = vbBlack
                End If
            Case Is = 4
                Cells(i, Ot) = Unix(Left(Split(ET, "-")(4), 8))
                Cells(i, Ot).Interior.Color = rgbAquamarine
                If Year(Cells(i, Ot)) < 2000 Then Cells(i, Ot) = Unix(Left(ET, 8))
            Case Else: Cells(i, Ot) = AzDash
        End Select

Nn:
        If Left(ET, 1) = "W" Then
            ET = Mid(Replace(ET, Chr(34), ""), 3)
            If Not T2Hx(Left(ET, 8)) Then
                    Cells(i, Ot) = Unix(Left(ET, 8))
                    Cells(i, Ot).Interior.Color = vbBlue
                Else
                    Cells(i, Ot).Interior.Color = vbBlack
                End If
        End If

Next i
End Sub

Function Unix(ByVal Hx As String) As Date
Dim De As Long
    De = CDec("&H" & Left(Hx, 8)) '<<<<<
            Unix = De / 86400 + DateValue("1.1.1970")
End Function

Function T_Hx(rng) As Boolean
Dim i As Integer

If rng = "" Then T_Hx = True: Exit Function
For i = 1 To Len(rng)
    If Mid(rng, i, 1) Like "[0-9a-f:\-]" Then
    Else
    T_Hx = True: Exit For
    End If
Next i
End Function

Function T2Hx(ByVal Tx As String) As Boolean
'testet auf Hex OHNE "-"
Dim i As Integer
For i = 1 To Len(Tx)
    If Mid(Tx, i, 1) Like "[0-9a-f]" Then
    Else
    T2Hx = True: Exit For
    End If
Next i
End Function
Benutzeravatar
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 726
Registriert: 12. Feb 2016, 18:56

Re: Favicon

Beitragvon Fennek » 28. Sep 2019, 12:48

Hallo,

anbei das Ergebnis eines kleinen Test:

- URL's, die ich noch nie vorher besucht hatte (um Cashing aususchließen)
- Abfrage mit Win10 Curl, Python und Powershell

-> Vergleich der ETag des Favicon's

Ergebnis:

Die MS-Programme Curl und PS liefern ähnliche Ergebnisse, Python völlig andere. Seiten, die mit Curl einen Fehler liefern, kann Python auslesen und umgekehrt.

Die Zeitstempel der ETag sind vor dem Abfragedatum (soweit erkennbar). Damit werden User NICHT mit dem Zeitstempel des Aufrufs markiert.

Frage: kann jemand die Ergebnisse nachvollziehen, bzw mit einem anderen, möglichst NICHT MS Programm die Liste abfragen.

mfg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 726
Registriert: 12. Feb 2016, 18:56

Re: Favicon

Beitragvon Fen » 13. Okt 2019, 14:33

bei reltiv vielen Anfrage wurde mein Wohnort zumindest auf max. 30 km genau in den Cookie geschrieben.

Etwas 'Galgen-Humor': manchmal passieren den Trackern auch Fehler:

Code: Alles auswählen
curl -I https://www.avg.com/favicon.ico
HTTP/1.1 200 OK
Content-Type: image/vnd.microsoft.icon
Content-Length: 1150
X-Avg-Cookie-Expires: Wed, 01-May-19 13:25:18 GMT
X-AVG-Country-Code: id
X-Akamai-Edgescape: georegion=105,country_code=ID,city=JAKARTA,lat=-6.17,long=106.80,timezone=GMT+7,continent=AS,throughput=vhigh,bw=5000,asnum=7713,location_id=0
X-Redman-Backend: legacy
X-Redman-Final-Url: www.avg.com/favicon.ico
Last-Modified: Mon, 01 Apr 2019 12:31:28 GMT
ETag: "f4a33f5c-47e-5857733126800"
Accept-Ranges: bytes
X-AVG: web-cqd-prod-edc-self013
X-Frame-Options: sameorigin
Server: nginx
Date: Sun, 13 Oct 2019 13:30:12 GMT
Connection: keep-alive


Ich wohne nicht in Indonesien.
Fen
 


Zurück zu Offtopic (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast