IE則在此基礎上增加了對MIME的嗅探功能,不僅僅根據Content-Type來判斷,而且會根據Response流的內容來進行判斷。加入Content-Type的值是text/plain,在非IE瀏覽器中,text/plain表明的是普通的文本,瀏覽器只需要把內容展示出來就可以了。但是在IE中,如果Response的內容是類似如下的內容:
- <html>
- <script>
- alert(/xss/);
- </script>
- </html>
IE的此特性可以得出,在Web程序中,返回的Response一定要具有正確的Content-Type值,避免IE的“聰明”。
問題是:如果我們的確需要給用戶提供一個普通的文件進行下載,該文件的內容含有如上格式的html相關字符,此時Content-Type的值是需要設置成text/plain(因爲這個文件的確是plain的),該怎麼辦呢?
解決方式是:使用Content-disposition.
Content-disposition格式:
"content-disposition","attachment; filename=fname.ext"
在filename=的後面寫上文件名(如foo.txt),此時瀏覽器會直接彈出對話框提示用戶是否保存此文件。