Browser sniffing
-
-
Das ist eher eine Frage fuer das Betriebssystem - dafuer gibt es Tools wie netstat.
-
qrztla schrieb:
Sobald ein Browser gestartet wird, wird gesnifft, sobald Browser beendet wird, wird auch das Sniffen beendet.
Damit kann man ganz schoenen Mist machen, ich glaube kaum das Dir hier jemand wirklich weiter helfen wird.
Man kann aber den Standardbrowser abfragen und dann die Task ueberpruefen...
-
Sobald ein Browser gestartet
wird, wird gesnifft, sobald Browser beendet wird, wird auch das
Sniffen beendet.(...)
Der Nutzer kann jederzeit einen anderen Browser installieren
bzw. verwenden, oder den alten deinstallieren.Dann musst du im Prinzip den ganzen HTTP Traffic "sniffen". Dazu gibt's diverse Protocol Analyzer etc. die man z.B. auch transparent in eine Firewall einschleifen kann.
Oder ggf. beim ADSL-Modem/Router einen Rechner anhängen dessen Netzwerkkarte im "promiscuous" Mode läuft, der könnte dann auch alles was ins Inet geht/vom Inet kommt mitschneiden.
Wenn wirklich nur mitgeloggt werden soll, kann man so auch relativ einfach HTTP Traffic auf beliebigen Ports erkennen, ist also nicht auf 80 eingeschränkt.
Natürlich loggt man dann aber auch wieder SOAP Traffic etc. mit - aber wäre das denn so ein Problem?
Andrerseits hast du mit HTTPS sowieso ein Problem. Entweder musst du HTTPS dann ganz verbieten, oder einfach damit leben, dass User die wissen was sie tun, über einen HTTPS-Re-Browser erst wieder "ungeloggt" zugreifen können auf was sie wollen.
-
-
qrztla schrieb:
Ich kann nicht davon ausgehen, dass jeder http-traffic von einem
Browser ausgeht, sprich dass der Nutzer im Internet surft.Es könnte genauso ein anderer http-client sein.
->
hustbaer schrieb:
Das grundlegende Problem ist hier die Definition von "Browser".
Was ist denn ein "Browser"? Oder genauer: wie willst du in einem Programm entscheiden, ob Prozess X ein "Browser" ist? Und zwar ohne händisch irgendwelche Listen zu warten?Die einzige Gemeinsamkeit bei Browsern besteht darin, dass sie alle über HTTP kommunizieren. Ansonsten gibt es keine Möglichkeit herauszufinden, ob ein Prozess ein Browser ist oder nicht.
Grüssli
-
-
qrztla schrieb:
Die Frage ist : Sind es nur Browser die http-Pakete empfangen können, oder auch andere http-Clients, außer den Browsern?
Klar können auch andere Programme HTTP Pakete empfangen und senden, aber das Problem bleibt, dass du ansonsten keine Gemeinsamkeiten zwischen Browsern finden kannst. Du musst somit eine grösse Menge an Programme behindern, wenn du alle Browser erwischen willst.
qrztla schrieb:
Es scheint nur eine Lösung zu geben :
http-Paket, Feld "User-Agent" mit 1 Liste von User Agents vergleichen.Dann hast du genau das Problem, welches hustbaer gesagt hat. Dann musst du händisch eine Liste mitführen. Das Problem ist nur, dass man einen kleinen und einfachen Browser schnell zusammengebaut hat, welcher etwas anderes in User-Agent einträgt und schon geht dein "Trick" nicht mehr.
Grüssli
PS: Wieso hast du eigentlich deine alten Beiträge gelöscht?

-
Dravere schrieb:
PS: Wieso hast du eigentlich deine alten Beiträge gelöscht?

Vielleicht hat er was zu verbergen? Ich weiß immernoch nicht wirklich wofür er das braucht und werde auch erstmal keine Tipps mehr geben... Finde das alles etwas merkwürdig.
-
Der Threadersteller ist höchst gefährlich!

-
Bei vielen Browsern kann man über ein .ini File oder manchmal sogar einen hübschen bunten Dialog einstellen, was als User-Agent String mitgeschickt werden soll. Soviel dazu.
Und ja, natürlich: ich denke mal es wird auch genügend dumme Robots geben, die sich als IE oder Firefox ausgeben, weil sie nicht als Robot behandelt werden wollen.
So.
Nu mach mal
----
Aber... was ist denn der Grund dass du "sonstige HTTP Clients" und "Browser" auseinanderhalten möchtest?
Und wo willst du die Grenze ziehen? Ist ein selten dämliches Email Programm, welches immer noch nicht gecheckt hat dass man bei HTTP-Mails nix aus dem Inet nachladen sollte, und munter anfängt über HTTP Content nachzuladen, und in der Mail anzuzeigen, ein Browser?
Ist wget ein Browser?
...?
Und nochmal: was ist mit HTTPS?