C++ 如何在c+;中创建一个好的身份验证系统+;使用sql数据库?

C++ 如何在c+;中创建一个好的身份验证系统+;使用sql数据库?,c++,authentication,C++,Authentication,首先,让我先说我不想复制和粘贴代码。我只是想知道怎么做。如果我要制作一个付费的软件,任何一个理智的人都会创作一个auth。没有它,人们可以自由地分发你的软件而不受任何限制。所以我想使用SQL数据库作为我的AUTH的一部分(在网页上创建一个帐户,创建一个条目,然后在C++软件检查中查看登录信息是否正确,并与数据库中的条目相匹配)。一些伪代码(我还没有真正用C++查看过SQL),这里是检查帐户: bool isAuthed = false; const char* username; const c

首先,让我先说我不想复制和粘贴代码。我只是想知道怎么做。如果我要制作一个付费的软件,任何一个理智的人都会创作一个auth。没有它,人们可以自由地分发你的软件而不受任何限制。所以我想使用SQL数据库作为我的AUTH的一部分(在网页上创建一个帐户,创建一个条目,然后在C++软件检查中查看登录信息是否正确,并与数据库中的条目相匹配)。一些伪代码(我还没有真正用C++查看过SQL),这里是检查帐户:

bool isAuthed = false;
const char* username;
const char* password;

std::cin >> username;
std::cin >> password;

if (mySQL.entry.exists(username, password)
{
isAuthed = true;
}
if (!isAuthed)
{
//close the program or display an error message or something
}
//program

但是,您已经创建了一个单跳转身份验证(将asm指令更改为jmp,取消检查,或将!isAuthed更改为isAuthed)。我考虑过每勾一次都打这个检查,以确保用户是经过身份验证的,但我不确定这是否有效。我的问题是,如果你的应用程序提供的安全性受到破坏,攻击者可以修改代码,那么你就没有安全性,那么,理论上如何在C++中提供良好的身份验证系统?句号。你希望这种攻击向量的环境是什么样的?如果这是一个客户端应用程序,那么安全性应该放在数据库或中间服务器上其中
username
是未初始化的指针。您需要购买一个解决方案。编写自己的代码不是一件小事,应该由专家来完成。@kmdreko是一个调试器。显然会有反调试保护,但没有什么是完全安全的。用jne替换找到的je,修补文件,然后修改代码。另外,您能详细说明一下服务器上应该设置的安全性是什么意思吗?我不确定我是否正确理解了这一点,我可能没有,但您仍然需要对输入的信息进行某种客户端检查,这就是问题所在。如何阻止一万份程序副本使用相同的用户名和密码?如果提供安全性的应用程序受到威胁,攻击者可以修改代码,那么您就没有安全性。句号。你希望这种攻击向量的环境是什么样的?如果这是一个客户端应用程序,那么安全性应该放在数据库或中间服务器上其中
username
是未初始化的指针。您需要购买一个解决方案。编写自己的代码不是一件小事,应该由专家来完成。@kmdreko是一个调试器。显然会有反调试保护,但没有什么是完全安全的。用jne替换找到的je,修补文件,然后修改代码。另外,您能详细说明一下服务器上应该设置的安全性是什么意思吗?我不确定我是否正确理解了这一点,我可能没有,但您仍然需要对输入的信息进行某种客户端检查,这就是问题所在。如何阻止一万份程序使用相同的用户名和密码?