Jump to content

report bug


rfx

Recommended Posts

Nu poti face un cmd impotriva acestui bug trebuie sa faci un mic sistem ca acesta care sa opreasca acest flood direct. 

Adauga la inceputu-l gamemodului (dupa includuri):

static const antisqlinjection[][] =
{
     "'",
     "`",
     "%s",      //Daca mai dai de alte semne care pot pica serveru-l mai adauga aici
     "%d",
     "%f",
     "#",                                                                                                                                                                                                   "\"
};

Dupaia baga asta la:OnDialogResponse (iti recomand s-o bagi sus de tot dupa paranteza)

for(new i; i < sizeof(antisqlinjection); i++)
    {
        if(strfind(inputtext, antisqlinjection, true) != -1)
    {
        SCM(playerid, -1, "Pune un text aici pe care jucatoru-l sa-l primeasca cand foloseste comanda..");
        return 1;
      }
    }

Edited by MegaZ775
Link to comment
Share on other sites

36 minutes ago, MegaZ775 said:

Nu poti face un cmd impotriva acestui bug trebuie sa faci un mic sistem ca acesta care sa opreasca acest flood direct. 

Adauga la inceputu-l gamemodului (dupa includuri):

static const antisqlinjection[][] =
{
     "'",
     "`",
     "%s",      //Daca mai dai de alte semne care pot pica serveru-l mai adauga aici
     "%d",
     "%f",
     "#",                                                                                                                                                                                                   "\"
};

Dupaia baga asta la:OnDialogResponse (iti recomand s-o bagi sus de tot dupa paranteza)

for(new i; i < sizeof(antisqlinjection); i++)
    {
        if(strfind(inputtext, antisqlinjection, true) != -1)
    {
        SCM(playerid, -1, "Pune un text aici pe care jucatoru-l sa-l primeasca cand foloseste comanda..");
        return 1;
      }
    }

ba imi da pawn complier has stopped working ba imi da erori.

 

Link to comment
Share on other sites

ATENTIE:Cel mai probabil e de aici static const antisqlinjection[][] = desparte parantezele sau da copy la asta si pune-o peste cealalta 

static const antisqlinjection [] [] =

1.Incearca fara "\" de la inceput

2.Uitate daca ai pus primele parti adica static const antisqlinjection [] [] =
{
     "'",
     "`",
     "%s",      /
     "%d",
     "%f",
     "#",...etc  sub includeuri

3.Uitate daca ai pus a doua parte corect la OnDialogResponse daca ai pus corect si chiar acolo dupa prima paranteza de la dialog mai precis asta {

4.Pune new string[1000];  dupa acea paranteza de la 3.

5.Uita-te daca ai copiat totu-l corect.

 

Link to comment
Share on other sites

11 minutes ago, MegaZ775 said:

ATENTIE:Cel mai probabil e de aici static const antisqlinjection[][] = desparte parantezele sau da copy la asta si pune-o peste cealalta 

static const antisqlinjection [] [] =

1.Incearca fara "\" de la inceput

2.Uitate daca ai pus primele parti adica static const antisqlinjection [] [] =
{
     "'",
     "`",
     "%s",      /
     "%d",
     "%f",
     "#",...etc  sub includeuri

3.Uitate daca ai pus a doua parte corect la OnDialogResponse daca ai pus corect si chiar acolo dupa prima paranteza de la dialog mai precis asta {

4.Pune new string[1000];  dupa acea paranteza de la 3.

5.Uita-te daca ai copiat totu-l corect.

 

Daca poti punem toate comenzile bune intr-un pastebin, ca nu se copiaza bine.

Link to comment
Share on other sites

Nu ai nevoie de chestia aia total inutila si prost facuta

new input[128];
	strcat(input, inputtext);

	for (new i = 0; input[i] != EOS; i++) {
	    if (input[i] != '%') {
			continue;
		}

		input[i] = '#';
	}

Daca pui asta sun public OnDialogResponse esti numa bine. 

Edit: Aceasi chestie poate fi aplicata la comenzi(desi la comenzi e indicat sa folosesti mysql_format cu %e in loc de %s) .Comenzile nu pica de la %s totusi

Edit2: Daca vrei sa te feresti de sql injection trebuie sa iti faci escape oriunde playerul poate insera text si poti face asta cu mysql_real_escape_string sau cu varianta din primul edit la acest reply

Edited by Banditul
Link to comment
Share on other sites

6 minutes ago, Banditul said:

Nu ai nevoie de chestia aia total inutila si prost facuta


new input[128];
	strcat(input, inputtext);

	for (new i = 0; input[i] != EOS; i++) {
	    if (input[i] != '%') {
			continue;
		}

		input[i] = '#';
	}

Daca pui asta sun public OnDialogResponse esti numa bine. 

O sa incerc, iti dau feedback daca merge

Link to comment
Share on other sites

{   

 if(strfind(inputtext, "%", true) != -1)
{
    SendClientMessage(playerid, COLOR_GENANNOUNCE, "SERVER: Sistem anti-flood by FeVosFeR");
    ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, "Sistem anti-flood", "Sistem anti-flood", "OK", "Exit");
    return 1;
}

 

Tot la OnDialogResponse

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.