C#HTTPS获取Cookie请求

时间:2017-03-09 23:56:40

标签: c# https get request

我一直在寻找2天,但我一无所获。

我的问题是我想从特定网站获取HTML,但是当用户登录时从页面获取HTML。这意味着我可以通过两种方式实现:1)创建完整的登录脚本(Post_login + get_page)或者只是GET我从浏览器中获取了cookie并将其手动放入代码中。

现在我想做第二种方式。我使用HttpWebRequest,它似乎忽略了我提出请求的cookie(使用HTTP它)。你能告诉我我做错了什么吗?或者哪里可以成为问题?

要获得此请求的新会话,请访问darkorbit.com登录:name = jasomdarkorbit password = 123456。

我希望你能以某种方式帮助我,谢谢你!

主要代码:

        //string name = "jasomdarkorbit";
        //string pass = "123456";
        const string URL = "https://www.darkorbit.com";

        string html = "";
        string url = URL + "/indexInternal.es?action=internalStart";

        //For getting fresh session for this request go to darkorbit.com log in with: name=jasomdarkorbit, password=123456.
        string cookies = "dosid=63660eb0d3b6fdc9dcc868c19cf3bf96;";

        html = GET(url, cookies);
        Debug.WriteLine(html);

我的获取方法代码:

 public static string GET(string url, string cookie = null)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36";
        request.Headers.Set(HttpRequestHeader.Cookie, cookie);

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        Stream responseStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(responseStream);

        string result = reader.ReadToEnd();

        responseStream.Close();
        reader.Close();
        response.Close();

        return result;
    }

1 个答案:

答案 0 :(得分:1)

使用的HttpWebRequest函数和HTTPS通信处理问题(在.NET 4.5中)。 使用Library Html Agility Pack,它可以平稳运行。

还有1个重要信息:

  

SESSION cookie也是一个COOKIE,因此您可以复制/粘贴它   然后您将以其他人的身份签名!

此方法用于窃取漏洞利用/ XSS攻击...攻击者仍将保留您的cookie,然后他可以登录该页面上的您的帐户,直到会话标识符更改为止。

因此,就我而言...我创建了带有浏览器和2个输入字段的C#gui:game serverdosid cookie。从其他浏览器登录游戏帐户后,我从URL复制了dosid cookie和game server号,并将它们放置到我的自定义浏览器输入字段中,BOOM也在此登录。

我为什么要这么做?

许多页面不允许每次登录时从2个浏览器/ PC同时登录cos会话。