请问下,正常情况下是不是post账号密码给目标网页,之后再同一个浏览器中刷新就是登陆状态
不知道是我抓包错了,还是我理解的问题,做一个网页的插件,用的是firebreath开发的,把账号密码的post上去,执行插件,刷新页面后没有登陆,这是post的代码 std::string post(LPCWSTR website,LPCWSTR page,string data,LPCWSTR spare=NULL) //post函数
{
DWORD dwSize = 0;
DWORD dwDownloaded = 0;
LPSTR pszOutBuffer = NULL;
HINTERNET hSession = NULL,
hConnect = NULL,
hRequest = NULL;
BOOL bResults = FALSE;
hSession=WinHttpOpen(L"User-Agent",WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHTTP_NO_PROXY_BYPASS,0);
if(hSession)
{
hConnect=WinHttpConnect(hSession,website,INTERNET_DEFAULT_HTTP_PORT,0);
}
if(hConnect)
{
hRequest=WinHttpOpenRequest(hConnect, L"POST",page,L"HTTP/1.1", WINHTTP_NO_REFERER,WINHTTP_DEFAULT_ACCEPT_TYPES,0);
}
LPCWSTR header=L"Content-type: application/x-www-form-urlencoded\r\n";
SIZE_T len = lstrlenW(header);
WinHttpAddRequestHeaders(hRequest,header,DWORD(len), WINHTTP_ADDREQ_FLAG_ADD);
if(hRequest)
{
//string data="a=2";
const void *ss=(const char *)data.c_str();
bResults=WinHttpSendRequest(hRequest, NULL,NULL,const_cast<void *>(ss),data.length(), data.length(), 0 );
// bResults=WinHttpSendRequest(hRequest,WINHTTP_NO_ADDITIONAL_HEADERS, 0,WINHTTP_NO_REQUEST_DATA, 0, 0, 0 );
}
if(bResults)
{
bResults=WinHttpReceiveResponse(hRequest,NULL);
}
if (!bResults)
{
cout << "Error " << GetLastError() << " has occurred." << endl;
}
if(bResults)
{
do
{
// Check for available data.
dwSize = 0;
if (!WinHttpQueryDataAvailable( hRequest, &dwSize))
{
printf( "Error %u in WinHttpQueryDataAvailable.\n",GetLastError());
break;
}
if (!dwSize)
break;
pszOutBuffer = new char[dwSize+1];
if (!pszOutBuffer)
{
printf("Out of memory\n");
break;
}
ZeroMemory(pszOutBuffer, dwSize+1);
if (!WinHttpReadData(hRequest, (LPVOID)pszOutBuffer, dwSize, &dwDownloaded))
{
printf( "Error %u in WinHttpReadData.\n", GetLastError());
}
else
{
printf("%s", pszOutBuffer);
printf("\n");
}
// delete [] pszOutBuffer;
if (!dwDownloaded)
break;
} while (dwSize > 0);
}
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hSession) WinHttpCloseHandle(hSession);
return pszOutBuffer;
} post模拟登陆后浏览器不会自己带着这个网页的cookie访问吗?
...全文
相关推荐
使用Post方法模拟登陆爬取网页的实现方法
在本文中,我们将探讨如何使用Java的HTTPURLConnection类来实现Post方法模拟登录并爬取网页。
易语言POST迅雷登陆
- **解析响应数据**:解析返回的数据,判断登录是否成功,如有需要,保存会话状态,以便后续操作。2. **账号检测**: 在登录过程中,账号检测是非常关键的一环。
django中账号密码验证登陆功能的实现方法
### Django中账号密码验证登陆功能的实现方法在Django框架中实现账号密码验证的登录功能是构建Web应用时的一项基本需求。
AJAX+JAVA用户登陆注册验证的实现代码
AJAX+JAVA用户登陆注册验证的实现代码本文将介绍使用AJAX和JAVA实现用户登陆注册验证的实现代码,通过ajax异步刷新页面验证用户输入的账号密码是否在数据库中存在。
Ajax登陆例程(内存判定账号密码)
Ajax登录是一种常见的网页交互技术,它允许用户在不刷新整个页面的情况下与服务器进行异步通信。


网络编程
