我一直在寻找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;
}
答案 0 :(得分:1)
使用的HttpWebRequest函数和HTTPS通信处理问题(在.NET 4.5中)。 使用Library Html Agility Pack,它可以平稳运行。
还有1个重要信息:
SESSION cookie也是一个COOKIE,因此您可以复制/粘贴它 然后您将以其他人的身份签名!
此方法用于窃取漏洞利用/ XSS攻击...攻击者仍将保留您的cookie,然后他可以登录该页面上的您的帐户,直到会话标识符更改为止。
因此,就我而言...我创建了带有浏览器和2个输入字段的C#gui:game server
和dosid
cookie。从其他浏览器登录游戏帐户后,我从URL复制了dosid
cookie和game server
号,并将它们放置到我的自定义浏览器输入字段中,BOOM也在此登录。
我为什么要这么做?
许多页面不允许每次登录时从2个浏览器/ PC同时登录cos会话。