17457
WindowsデスクトップアプリケーションでWEBサイトにログインするのは危険ですか？  
色々なブログにはこのように書かれていますが、VisualC#WebBrowserはIE7と古いので危険性を感じました。WEB APIは初心者です。

```

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        string currentUrl = webBrowser1.Url.ToString();
        textBox3.Text = currentUrl;
    
        if (currentUrl.StartsWith("https://login.yahoo.co.jp/config/login"))
        {
            string id="userid";
            string pass ="userpass";
            webBrowser1.Document.All.GetElementsByName("yahoo_id")[0].InnerText = id;
            webBrowser1.Document.All.GetElementsByName("password")[0].InnerText = pass;
            webBrowser1.Document.All.GetElementsByName("auto_login")[0].SetAttribute("checked", "true");
            webBrowser1.Document.Forms[0].InvokeMember("submit");
        }
    }
    
```
CC BY-SA 3.0
2015-10-08T16:40:12.330
17434
2015-10-09T11:57:14.743
7973
question
c#
WebBrowser自動ログインについて
Yahoo! JAPANの利用経験がないため確実なことは言えませんが、`WebBrowser`コントロールとInternet
Explorerはcookieが共有されています。ですので、Internet
Explorer側で自動ログインにチェックを付けた上でログインを行っておけば、`WebBrowser`コントロール側でも自動ログインされるようになりませんか？

* * *

`WebBrowser`コントロールに対して処理を書き込むことに不安を感じられるのでしたら、Internet
Explorerにて自動ログインの設定を行ってしまうことで、アプリケーション側では処理しなくても済みます。処理を書かなければ不安は解消されるかと思います。

`WebBrowser`コントロールが既定でIE7モードとなるのはもちろん互換のためです。[Browser
Emulation](https://msdn.microsoft.com/en-
us/library/ee330730\(v=vs.85\).aspx#browser_emulation)に記載されているレジストリ値を書き込むことで動作モードを切り替えることができます。
CC BY-SA 3.0
2015-10-09T01:56:28.673
17448
2015-10-09T11:57:14.743
2015-10-09T11:57:14.743
4236
4236
17434
answer
```

    VisualC#WebBrowserはIE7と古い
    
```

WebBrowserコントロールのUser-
Agent文字列を確認するとIE7ぽい文字列ですが、実際には互換モードになっているだけでIE7そのものではありません。その点では、Internet
Explorerを普通に使うのとリスクに違いはありません。

WebBrowserコントロールを使って外部のWebサイトを操作をする場合、アプリケーションがアプリケーションの外部とやりとりする際のデータの扱いに注意してください。検査されていない入力値をWebBrowserコントロールに渡さない、出力データにCookieなどの機密データを含まない、など。
CC BY-SA 3.0
2015-10-09T02:51:23.353
17457
2015-10-09T02:51:23.353
5793
17434
answer