2015年10月30日金曜日

HKCU\Software\Microsoft\Internet Explorer\LowRegistry\IEShims\NormalizedPaths

Internet Explorer に関する整合性レベル低についての情報を探していました。


どうもこのレジストリが当たりのようです。

どのような整合性レベルが設定されているのか、検証:

C:\Users\ku_000\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low>icacls .
. NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(F)
  DD36\ku_000:(I)(OI)(CI)(F)
  Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

C:\Users\ku_000\AppData\Local\Microsoft\Windows\Temporary Internet Files\Virtualized>icacls .
. NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(F)
  DD36\ku_000:(I)(OI)(CI)(F)
  Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

C:\Users\ku_000\AppData\Local\Microsoft\Windows\Temporary Internet Files → [C:\Users\ku_000\AppData\Local\Microsoft\Windows\INetCache]

C:\Users\ku_000\AppData\Local\Temp\Low>icacls .
. NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(F)
  DD36\ku_000:(I)(OI)(CI)(F)
  Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

C:\Users\ku_000\AppData\LocalLow>icacls .
. NT AUTHORITY\SYSTEM:(OI)(CI)(F)
  BUILTIN\Administrators:(OI)(CI)(F)
  DD36\ku_000:(OI)(CI)(F)
  Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)


今日この件が、ダウンロードアンダーバー問題と関係が有るのではないかと、ふと思い、調査に着手しました。

2015年10月16日金曜日

IDownloadManager の実装意義

Internet Explorer や WebBrowser コントロールには、ファイルのダウンロードをカスタマイズする機構が備わっているようです。

IDownloadManager interface
https://msdn.microsoft.com/en-us/library/aa753613(v=vs.85).aspx

インターフェイスの定義の方は、次のようになっています。

    MIDL_INTERFACE("988934A4-064B-11D3-BB80-00104B35E7F9")
    IDownloadManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Download( 
            /* [in] */ IMoniker *pmk,
            /* [in] */ IBindCtx *pbc,
            /* [in] */ DWORD dwBindVerb,
            /* [in] */ LONG grfBINDF,
            /* [in] */ BINDINFO *pBindInfo,
            /* [in] */ LPCOLESTR pszHeaders,
            /* [in] */ LPCOLESTR pszRedir,
            /* [in] */ UINT uiCP) = 0;
        
    };

要は GET や POST でダウンロードが必要な場合に



確認を求めてくる、あの画面です。

通常 Download が呼び出されますが。横取りされて、Download が履行されないケースも確認しています:

  • PDFファイルが、Adobe Acrobat Reader 等でインライン表示される場合。
  • テキスト形式に見えるファイルが、インライン表示される場合。

Download に渡ってくる引数につきまして:

  • pmk 以外は、ほとんど NULL。当てにできません。
  • POST の場合は、GET と同じ要領で来ます。判別する明確な方法は見つかっていません。


こういう物を見つけました。

IE custom download manager (CSIEDownloadManager)
https://code.msdn.microsoft.com/windowsdesktop/CSIEDownloadManager-8ab5d910

ビルドしたサンプルを参考までにお配りしています。

Setup_CSIEDownloadManager.exe
https://drive.google.com/file/d/0Bygl-em20CSKcEhKZFYxdVZUemM/view?usp=sharing

Windows 8.1 の IE11 でも動きましたので、IDownloadManager は未だ有効のようです。