Jump to content

[Tutorial] Verficari suplimentare de securitate


Recommended Posts

Posted

Rolul acestor verificari este de a securiza mai bine conturile persoanelor importante (admini, helperi, lideri, etc) ...

 

Cum functioneaza? 
Simplu, cand persoana va intra pe server, ii va aparea un dialog in care va trebui sa introduca o parola suplimentara

 

I. Inceputul - declararea variabilei

Verificarea o putem facem o singura data sau de mai multe ori (de fiecare data cand primeste respawn, este enervant, si nu recomand).

Mergem la inceput si declaram:

new bool:SecurityAnswer[MAX_PLAYERS];

*bool este o variabila care nu stocheaza decat 2 tipuri de date, adevarate (=true) sau false (=false).

Dupa aceea ne ducem la public OnPlayerConnect(playerid) si adaugam:

SecurityAnswer[playerid]=false;

pentru a seta variabila SecurityAnswer falsa la fiecare jucator nou ce se conecteaza!

II. Introducerea verificarii

Eu am ales sa verific daca a raspuns la intrebare atunci cand se spawneaza, iar prima oara cand se spawneaza, este chiar cand trece de OnPlayerLogin.

public OnPlayerSpawn(playerid)
{
	if(PlayerData[playerid][pAdmin] >= 1)
  	{
		if(!SecurityAnswer[playerid])
		{
  	    	ShowPlayerDialog(playerid, 6969, DIALOG_STYLE_INPUT, "Security Check", "Please type your phone number", "OK", "DEAD");
		}
	}
	return 1;
}

PlayerData[playerid][pAdmin] -poate fi inlocuita cu PlayerData[playerid][pHelper], PlayerData[playerid][pLeader] si asa mai departe ... (!S-ar putea ca voi sa aveti PayerInfo)
!SecurityAnswer[playerid] - Daca variabila declarata la pasul 1 este falsa, atunci se executa codul de mai jos
6969 - reprezinta ID-ul dialogului (poate fi inlocuit)
DIALOG_STYLE_INPUT - reprezinta stilul dialogului (aici gasiti mai multe stiluri)
*DIALOG_STYLE_INPUT poate fi inlocuit cu DIALOG_STYLE_PASSWORD pentru a nu mai fi vizibile caracterele tastate
Security Check - reprezinta titlul de sus
Please type your phone number - un mesaj oarecare pentru a deruta micul hacker
OK - butonul de confirmare a dialogului (echivalent cu apasare tastei ENTER)
DEAD - butonul de anualre a dialogului (echivalent cu apasare tastei ESC)

III. Configurarea dialogului

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{	
	if(dialogid == 6969)
	{
		if(!response)
		{
		    //Puteti sa ii dati kick/ban/injurati tot ce doriti ->> in caz ca inchide dialogul
			return 1;
		}
		else
		{
		    new inputpass[64];
		    format(inputpass, sizeof(inputpass), "parola-cu-valoare-2");
    		if(strcmp(inputtext, inputpass, true) == 0)
			{
			    //Un mesaj de confirmare
			    SecurityAnswer[playerid] = true;
			}
			else
			{
        		//Puteti sa ii dati kick/ban/injurati tot ce doriti ->> in caz ca raspunde gresit - se poate intampla
			}
		}
	}
	return 1;
}

6969 - reprezinta ID-ul dialogului de la pasul II
if(!response) - daca acesta nu raspunde la dialog (apasa ESC sau pe butonul "DEAD")
inputpass[64] - reprezinta o variabila care stocheaza parola noastra.
inputtext[64] - reprezinta o variabila care stocheaza parola introdusa de jucator
parola-cu-valoare-2 - reprezinta parola definita de scripter
if(strcmp(inputtext, inputpass, true) == 0) - verifica daca intre parole nu exista diferente
SecurityAnswer[playerid] = true; - seteaza variabila de la pasul I pe true, pentru a nu mai raspunde de mai multe ori

  • Upvote 1

Y!M: menyx.official

Skype: menyx.official

 

 

Inainte de a critica o persoana indiferent de etnie/varsta/inteligenta ei uita-te la tine si nu uita ca toti suntem Oameni si ca nu are sens sa incerci sa pari diferit!Daca esti mai prost/destept decat cel scos/aflat in discutie incearca sa nu faci pe "MR. Inteligent" TACI si FACI!

Respecta membrii acestei comunitati daca ai pretentia sa fi respectat si tratat(a) ca pe o fiinta umana!

 

Nu fac nimic remarcabil, dar ceea ce fac este esenţial.•

 

  • 6 months later...
Posted

+1, imi place aceasta idee, poate fi de folos pentru uni :)

"Mulţi programatori buni fac programare nu pentru că se aşteaptă să câştige bani sau să fie lăudaţi de public, ci pentru că e amuzant să programezi." - Linus Torvalds

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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.