Friday, February 23, 2007

MS MIME Type Detection Prevention

Im letzten Eintrag blieb die Frage offen, wie man dem Ratespiel des Internet Explorers auf der Server Seite entgegen wirken kann. Ich denke ich habe dafür eine solide Lösung gefunden. Nach einigen Versuchen stellte sich heraus, dass die hard coded - tests von Microsoft bzw. die FindMimeFromData Funktion nichts anderes tun, als die ersten 256 Bytes des jeweiligen Dokumentes nach folgenden Strings zu untersuchen:

  • <html
  • <head
  • <body
  • <pre
  • <table
  • <a href
  • <img src ('src' situationsbedingt nicht notwendig)
  • <script>string</script>

Taucht einer dieser Strings auf, ist das für Microsoft ein eindeutiges Indiz dafür, dass es sich um ein valides HTML Dokument handelt und dementsprechend wird es vom Zauberbrowser MSIE ausgegeben.

Von daher ist es kein großer Aufwand mehr, ein entsprechendes Skript zu schreiben das die ersten Bytes daraufhin untersucht. In leicht abgewandelter Form sollte das Skript auch für andere Dateitypen verwendbar sein. - http://php-classes.net/image.rar

Soviel zur MIME Type Detection Prevention.

3 Comments:

Anonymous said...

Hallo Christian, P. hier. Du bist ein As.

Nicolas Grekas said...

Hello Christian,
just to complete your post, here is an updated list of strings that make IE thinks a ressource is HTML:

* <body
* <head
* <html
* <img
* <plaintext
* <a href
* <pre
* <script
* <table
* <title

See also
http://www.splitbrain.org/blog/2007-02/12-internet_explorer_facilitates_cross_site_scripting

christ1an said...

Hi Nicolas, thank you very much for updating this list!