• Dragi prijatelji, kreiran je nov forum "Socijalna zastita" na kome ce se pricati o svim pitanjima vezanim za ovu aktuelnu temu u drustvu

Спречите СКЛ инјекцију Ц++

Jansen

Početnik
Poruka
3
bool run_query(sqlite3* db, const std::string& sql, std::vector< user_record >& records)
{

// clear any prior results
records.clear();

char* error_message;
if(sqlite3_exec(db, sql.c_str(), callback, &records, &error_message) != SQLITE_OK)
{
std::cout << "Data failed to be queried from USERS table. ERROR = " << error_message << std::endl;
sqlite3_free(error_message);
return false;
}

return true;
}[/ICODE]

Како да поправим овај метод да не успе и прикаже грешку ако постоји сумња на СКЛ ињекцију?
 
Poslednja izmena od moderatora:

bmaxa

Buduća legenda
Poruka
37.114
bool run_query(sqlite3* db, const std::string& sql, std::vector< user_record >& records)
{

// clear any prior results
records.clear();

char* error_message;
if(sqlite3_exec(db, sql.c_str(), callback, &records, &error_message) != SQLITE_OK)
{
std::cout << "Data failed to be queried from USERS table. ERROR = " << error_message << std::endl;
sqlite3_free(error_message);
return false;
}

return true;
}[/ICODE]

Како да поправим овај метод да не успе и прикаже грешку ако постоји сумња на СКЛ ињекцију?
sql inekcija se zasniva na tome da sql upit bude deo query-ja. Dakle ako se upit ne vidi u query-ju, nema ni sql inekcije...
Dakle nema veze sa izlozenim...
 

bmaxa

Buduća legenda
Poruka
37.114
Пише се и каже се инјекција. Проблем је до латинице. На латиници кад се пише инјекција и ињенкција пише се исто (injekcija) и отуда долази до забуне док на ћирилици не.
Ja se ne bih bavio gramatikom nego time da bacanje vektora u sql3_exec pravi bug, posto C ne zna za vektore...
 

bmaxa

Buduća legenda
Poruka
37.114
Користите припремљене СКЛ изразе који прихватају променљиве везивања за вредности пренете у СКЛ израз. То важи за свако окружење, не само за Ц++.
Ako izlozis promenljive direktno iz http query-ja u sql query, ranjiv si na sql injekciju (ajd da ispostujem Dzeksona :))
 
Da biste mogli da kreirate nove teme, trajno koristite svoje ime i ne pogađate stalno slike - kliknite ovde da se registrujete.

Top
  Blokirali ste reklame
Dragi prijatelju, nemojte da blokirate reklame - isključite Ad Blocker na Forumu, jer će tako mesto vaših susreta na Krstarici ostati besplatno za korišćenje.