【发布时间】:2019-04-12 12:24:56
【问题描述】:
我有一个朋友,我想在一个项目上帮忙,我根本不是渗透测试方面的专家,事实上,我真的很陌生,但他让我帮忙识别他的程序的潜在安全问题。
我不太确定,但我有一种感觉,特别是一段代码容易受到 SQL 注入的攻击,我想知道是否有人可以提供它如何易受攻击的示例(如果是的话)以及任何建议关于如何对输入进行清理。
这是一个sn-p的代码
nextwork:
cDataBase *db = NewManagerDB();
if( !db->QueryDirect( dbginfo, "SELECT * FROM Account WHERE UserID = '%s'", szManagerID ) )
{
ErrDB(db);
DelManagerDB(db);
if( Retire == MAX_RETIRE )
{
LOG("QueryDirect error MAX_RETIRE db QueryDirect failed");
SendManagerAuthenResult( MgrCode::SvrError );
return;
}
Retire++;
goto nextwork;
}
感谢您的帮助!
【问题讨论】:
-
您是否正在使用用户输入处理查询字符串?是的。所以你的代码很容易受到攻击。您是否使用参数来传递常量值?不,所以你需要学习如何做到这一点。
-
@WGHaven,非常感谢您查看我对您的问题的回答,如果我能够帮助您,请通过单击答案分数下方的
v将答案标记为已接受。谢谢
标签: c++ mysql sql sql-injection