[ROZWIĄZANE] Problem z pluginem ( mysql )
speedkill
16.10.2011
Siemka mam taki problem z pluginem na mysql że wpis czasem się podwoi czasem po zmianie mapy komuś się to zresetuje.
Więc gdybyście mogli zobaczyć o co chodzi
oto fragment zapisu i odczytu :
Dziękuje z góry za pomoc
Użytkownik speedkill123 edytował ten post 16.10.2011 21:54
Więc gdybyście mogli zobaczyć o co chodzi
oto fragment zapisu i odczytu :
public mysqload(id) { #if defined Mysql new name[32], szTemp[512] get_user_name(id, name, 31) new Data[1] Data[0] = id format(szTemp,charsmax(szTemp),"SELECT * FROM `Skoki` WHERE (`Skoki`.`name` = '%s')", name) SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1) #endif } public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { #if defined Mysql if(FailState == TQUERY_CONNECT_FAILED) { log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error) } else if(FailState == TQUERY_QUERY_FAILED) { log_amx("Load Query failed. [%d] %s", Errcode, Error) } new id id = Data[0] if(!SQL_MoreResults(Query)) { wczytaj(id) new name[32] get_user_name(id, name, 31) new szTemp[512] format(szTemp,charsmax(szTemp),"INSERT INTO `Skoki` ( `name` , `skoki`, `ranga`)VALUES ('%s',0,'%s');",name,ranga[id]) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) } else { skoki[id] = SQL_ReadResult(Query, 1) return PLUGIN_HANDLED } return PLUGIN_HANDLED #endif } public mysqlsave(id) { #if defined Mysql new szTemp[512] new name[32] get_user_name(id, name, 31) wczytaj(id) format(szTemp,charsmax(szTemp),"UPDATE `Skoki` SET `skoki` = %d,`ranga` = '%s' WHERE `Skoki`.`name` = '%s';",skoki[id],ranga[id], name) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) #endif }Pozdrawiam speedkill
Dziękuje z góry za pomoc
Użytkownik speedkill123 edytował ten post 16.10.2011 21:54
R3X
16.10.2011
na pewno nick powinien zostać zabezpieczony przed SQL Injection
z tego co widzę to zanim zapiszesz coś wczytujesz, a tak nie powinno być jeśli używasz wątków (SQL_ThreadQuery)
Co poradzić?
dodaj slashe przed specjalnymi znakami ' \ itd oraz zablokuj zapis jeśli nie wczytano
więcej nie powiem dopóki nie pokażesz reszty kodu, bo zwyczajnie nie widać błędu
z tego co widzę to zanim zapiszesz coś wczytujesz, a tak nie powinno być jeśli używasz wątków (SQL_ThreadQuery)
Co poradzić?
dodaj slashe przed specjalnymi znakami ' \ itd oraz zablokuj zapis jeśli nie wczytano
więcej nie powiem dopóki nie pokażesz reszty kodu, bo zwyczajnie nie widać błędu
sebul
17.10.2011
Nick gracza może zawierać \ ? Z tego co wiem, to gra blokuje takie nicki, choć nie wiem jak to jest w przypadku, gdy nick z \ dodamy do naszego cfg.
speedkill
17.10.2011
R3X , tu masz cały kod jest on rozbity na pliki inl wiem jest on nie optymalny itp
Hasło takie jak twój tytuł użytkownika
Ps.Sorki R3X że prosiłem o pomoc na steam
Użytkownik speedkill123 edytował ten post 17.10.2011 15:21
Hasło takie jak twój tytuł użytkownika
Ps.Sorki R3X że prosiłem o pomoc na steam
Załączone pliki
Użytkownik speedkill123 edytował ten post 17.10.2011 15:21
sebul
17.10.2011
A tym to ja wiem, chodziło mi tylko o samo \ ;]Na pewno może zawierać ' a to najłatwiejszy sposób na injection
speedkill
18.10.2011
Poradziłem sobie
Dziękuje za wypowiedzi wyżej po + panowie
Można close
Dziękuje za wypowiedzi wyżej po + panowie
Można close
Onyke
18.10.2011
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL