gpt4 book ai didi

c++ - CInternetSession 安全吗?它被加密了吗?

转载 作者:可可西里 更新时间:2023-11-01 17:34:30 25 4
gpt4 key购买 nike

我向 SharePoint 网站发出了一个 HTTP POST 请求,该网站需要用户的 credential

我想确保正在使用的usernamepassword 是安全的,不会轻易被嗅探到。

我四处查看是否 CInternetSession 加密了数据,但我没有找到任何可靠的信息。

我使用此代码安全吗?

我按如下方式传递这些凭据:

void CUserPassDiag::Connect(){

CString username;
CString password;
m_UsernameCEditControl.GetWindowText(username); // get username
m_passwordCEditControl.GetWindowText(password); // get password

CInternetSession session(_T("session"));
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
const int szBuffSize = 20000;
char *szBuff = new char[szBuffSize]; // needed to store the html file

try
{
/*
* First Request - Retrieve the HTML page
*/

CString strServerName = _T("SPsite");

// Physyical Location Widget URL
CString strObject = _T("/somepage.aspx");

// Headers for the POST Request
CString headers = _T("Content-Type: application/x-www-form-urlencoded\r\n");
headers += _T("Host: SPsite\r\n");
headers += _T("Pragma: no-cache\r\n");
headers += _T("Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, *//*\r\n");
headers += _T("Accept-Language: en-CA\r\n");\
headers += _T("Referer: SPsite/somepage.aspx\r\n");

// Headers Ready
CString szHeaders = _T(headers);

// This will store the POST request return value
DWORD dwRet;

// Get connection with username and password
pServer = session.GetHttpConnection(strServerName, INTERNET_DEFAULT_HTTP_PORT, _T(username), _T(password));

// open request
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, strObject);
pFile->AddRequestHeaders(szHeaders);
pFile->SendRequest();
}catch(){
}
}

最佳答案

GetHttpConnection 只是从 WinInet 库调用 WinAPI 的 InternetConnect。它是不安全的,除非它通过带有“https://”URL 的 INTERNET_DEFAULT_HTTPS_PORT 选项的安全端口。

假设密码是“blue-cheese”。如果我告诉你密码,那么其他人都会看到它。我可以用另一个密码加密密码,然后我必须告诉你另一个密码,其他人也会看到。所以我无法通过公开 channel 向您发送密码,除非使用 Diffie-Hellman key 交换等方法。

如果该程序只供您自己使用,或者您可以保护它的方法,那么您可以在您的软件和您的网站之间建立一个响应挑战系统。

如果您正在制作一个公开发布的程序,那么如果没有 SSL,这基本上是不可能的,因为黑客可以监视您的代码的行为。

关于c++ - CInternetSession 安全吗?它被加密了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35610606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com