Szerző Téma: LoginPanel  (Megtekintve 2416 alkalommal)

LoginPanel
« Dátum: 2017. május 17. - 08:44:31 »
0 Show voters
Server oldal:
 



   
      function LoginButton(Player, Username, Password)
          local Password = sha256(Password)
          local CheckUsernamePassword = mysql_query(Database,\"SELECT * FROM `accounts` WHERE `Username` = \'\"..Username..\"\' AND `Password` = \'\"..Password..\"\'\")
          if (mysql_num_rows (CheckUsernamePassword) > 0) then
              local Fetch = mysql_fetch_assoc(CheckUsernamePassword)
              outputChatBox(Fetch.Money)
              setPlayerMoney(Player, Fetch.Money)
          else
              outputChatBox(\"Rossz!\")
          end
      end
      addEvent(\"Login\", true)
      addEventHandler(\"Login\", resourceRoot, LoginButton)
   

[/quote]
 
Client oldal:
 



   
      function LoginButton(Player)
          Username = guiGetText(GUIEditor.edit[1])
          Password = guiGetText(GUIEditor.edit[2])
          triggerServerEvent (\"Login\", resourceRoot, Player, Username, Password, client)
      end
   

[/quote]
 
Hiba:
 



   
      Bad argument @ \'setPlayerMoney\' [Expected element at argument 1, got string \'left\']
   

[/quote]
 
 
« Utoljára szerkesztve: 2017. május 17. - 08:45:26 írta Somax02 »

LoginPanel
« Válasz #1 Dátum: 2017. május 17. - 14:44:43 »
0 Show voters
Először a setPlayerMoney-nál a pénzt kell megadni.
 
E: A jelszó lekódolása okos ötlet!
« Utoljára szerkesztve: 2017. május 17. - 14:45:58 írta thegergo02 »

LoginPanel
« Válasz #2 Dátum: 2017. május 17. - 17:06:20 »
0 Show voters
Köszi, de a setPlayerMoney - nál ha a pénzt írom előre is ugyanazt a hibát írja ki. 

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
LoginPanel
« Válasz #3 Dátum: 2017. május 17. - 19:09:05 »
0 Show voters
https://wiki.multitheftauto.com/wiki/TriggerServerEventWarning: You should use the global variable client serverside instead of passing the localPlayer by parameter or source. Otherwise event faking (passing another player instead of the localPlayer) would be possible. More information at addEventHandler

LoginPanel
« Válasz #4 Dátum: 2017. május 17. - 19:36:38 »
0 Show voters
Én saját titkosítási módszert használnék, de ez már a Te döntésed. A SHA256 nem a legbiztonságosabb, de még az egyszerű MD5-ök is feltörhetőek már. :/

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
LoginPanel
« Válasz #5 Dátum: 2017. május 17. - 21:12:11 »
0 Show voters
Idézetet írta: MakroBox date=1495042598


   
      Én saját titkosítási módszert használnék, de ez már a Te döntésed. A SHA256 nem a legbiztonságosabb, de még az egyszerű MD5-ök is feltörhetőek már. :/
   


Egyik titkosítás se biztonságos, mindegyik brute-forceolható, csak idő és teljesítmény kérdése.
 
Viszont SHA256 ugyan úgy biztonságosnak mondható, ha az illető használ saltot, illetve 1000x - 10000x titkosítja a jelszót vele. (na meg ad hozzá egy kis leleményességet).
 
A legújabb MTA verzióban már van bcrypt, ez kifejezetten jelszavak tárolására lett létrehozva.

Nem elérhető id100

  • 903
    • Profil megtekintése
LoginPanel
« Válasz #6 Dátum: 2017. május 17. - 21:55:57 »
0 Show voters
Titkosítás az RSA is, mégsem bruteforceolható sikeresen (elég nagy bitnél valószínűtlen hogy ráakadsz a privát kulcsra)
 
Egyébként egy kis szervernél (5-10 haver) elég az MD5, nem kell túl nagy titkosítást használni mert csak lassít, több adatot kell tárolni.
 
 
 
MakroBox:
 
Kíváncsi lennék arra, hogy egy SHA, de akár MD5 szintű titkosítást te házilag írsz... Elég nagy matematikai tudást igényel, kifinomultságot.
 
Az meg, hogy az MD5 törhető, így nem igaz. Persze, az ASD123 szintet könnyű törni, több mint 800 milliárd hash van egy nagy adatbázisban, minden amit beírogatsz online egy \"encrypt\"be egyből mentik is le (és még ígysem talál meg alap jelszavakat, legalábbis az enyéimet nem pedig nem bonyolultak).
 
 
 
 

LoginPanel
« Válasz #7 Dátum: 2017. május 18. - 06:59:29 »
0 Show voters
Igazából én azt eleve megtapsolom, aki bejut az adatbázisba. De a kérdés az, hogy hogyan tudom kijavítani ezt a hibát.
 



   
      Bad argument @ \'setPlayerMoney\' [Expected element at argument 1, got string \'left\']
   

[/quote]
 
 

Nem elérhető id100

  • 903
    • Profil megtekintése
LoginPanel
« Válasz #8 Dátum: 2017. május 18. - 13:28:09 »
0 Show voters
Kis off, például nálunk az SQLbe nem tudsz bejutni távolról, nincs phpMyAdmin távolról, illetve 1024 karakteres a jelszó. 
 
setPlayerMoney(\'left\', .......
 
Mit keres ott a \"left\" szó? (string)

LoginPanel
« Válasz #9 Dátum: 2017. május 18. - 13:56:20 »
0 Show voters
Amikor átviszem server oldalról a client oldalra a \'Player\' - t, az Event segítségével akkor nem tudja, hogy kinek kell adni a pénzt.

Nem elérhető id100

  • 903
    • Profil megtekintése
LoginPanel
« Válasz #10 Dátum: 2017. május 18. - 13:57:02 »
0 Show voters
Akármit viszel át a \"left\" stringet kapja szóval nyilván nem jól viszed.

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
LoginPanel
« Válasz #11 Dátum: 2017. május 18. - 14:50:45 »
0 Show voters
Idézetet írta: Somax02 date=1495108580


   
      Amikor átviszem server oldalról a client oldalra a \'Player\' - t, az Event segítségével akkor nem tudja, hogy kinek kell adni a pénzt.
   


Minek akarod átvinni a \'Player\'-t mikor alapból megkapja az eventnél \'client\' változó alatt?

Nem elérhető Xenius

  • 668
    • Profil megtekintése
LoginPanel
« Válasz #12 Dátum: 2017. május 18. - 14:55:44 »
0 Show voters
@DrAkE nem minden esetben célszerű megoldás a client, például ha egy triggert le akarsz védeni a módosított mta kliensek elől akkor resoureRoot-al érdemes triggerelni, és szerveroldalon ha a client változó él akkor a scriptet megállítani, ezáltal nem fognak tudni semmit sem csinálni a módosított kliensekkel. 

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
LoginPanel
« Válasz #13 Dátum: 2017. május 18. - 15:00:43 »
0 Show voters
Idézetet írta: Xenius date=1495112144


   
      @DrAkE nem minden esetben célszerű megoldás a client, például ha egy triggert le akarsz védeni a módosított mta kliensek elől akkor resoureRoot-al érdemes triggerelni, és szerveroldalon ha a client változó él akkor a scriptet megállítani, ezáltal nem fognak tudni semmit sem csinálni a módosított kliensekkel. 
   


Módosított MTA klienssel fel se enged az alap MTA szerverekre.
 
Másik meg:
 
Warning: You should use the global variable client serverside instead of passing the localPlayer by parameter or source. Otherwise event faking (passing another player instead of the localPlayer) would be possible. More information at addEventHandler
« Utoljára szerkesztve: 2017. május 18. - 15:10:28 írta DrAkE »

Nem elérhető Xenius

  • 668
    • Profil megtekintése
LoginPanel
« Válasz #14 Dátum: 2017. május 18. - 17:01:18 »
0 Show voters
Idézetet írta: DrAkE date=1495112443


   
      Módosított MTA klienssel fel se enged az alap MTA szerverekre.
   
   
      Másik meg:
   
   
      Warning: You should use the global variable client serverside instead of passing the localPlayer by parameter or source. Otherwise event faking (passing another player instead of the localPlayer) would be possible. More information at addEventHandler
   


 
 
Amúgy pedig felenged ha kijátszod, tapasztalatból tudom.
 

   

         
            Note: To save server CPU, you should avoid setting theElement to the root element where possible. Using resourceRoot is usually sufficient if the event is handled by the same resource on the server.
         
      
« Utoljára szerkesztve: 2017. május 18. - 17:04:19 írta Xenius »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal