Autor Zpráva
Katry0
Profil
Zdravím,

píšu jednoduchou hru (Piškvorky), která komunikuje mezi prohlížeči prostřednictvím WebRTC, logiku mám hotovou, ale trápí mě zabezpečení.
Nenapadá mě žádný způsob jak zjistit, zda uživatel nějakým způsobem neupravil svůj script např. v nástrojích pro vývojáře.
Výsledky se budou nahrávat na server přes AJAX, ale stačí ve scriptu udělat pár úprav a na server mi od každého uživatele dorazí jiná verze výsledků a já nebudu mít šanci zjistit, kdo poslal podvrh.

Jediné řešení které mě napadlo je přepsat celou komunikaci z WebRTC do AJAXu, ale chci co nejméně zatěžovat server.

Předem díky za pomoc! :-)
_es
Profil
Katry0 [#1]:
Žiadny spoľahlivý spôsob na zábranu toho, aby si užívateľ upravil zobrazovanú webstránku a jej JS neexistuje - čo si stiahol a u seba spustí je v jeho moci, rovnako je to aj so zisťovaním tej úpravy.

Jediné řešení které mě napadlo je přepsat celou komunikaci z WebRTC do AJAXu
To je predsa len iný spôsob komunikácie medzi klientom a serverom - vôbec sa to netýka základu dotazu.
Fisir
Profil
Reaguji na Katryho0:
Napadá mě jedině odesílat každý tah na server a ten by si pamatoval, kam kdo táhnul. Tak by to podvrhnout nešlo, ale bylo by to zase výkonově náročnější.
Joker
Profil
Fisir:
Tahy by si mohli vzájemně ověřovat i klienti.
Server by na začátku hry vygeneroval dva náhodné klíče a každému hráči přidělil jeden.
Hráč by současně s každým tahem odeslal i stav hry a jako ověření nějaký „podpis“ vzniklý ze stavu hry a klíče daného hráče.

Nevýhoda je nutnost posílat stav hry při každém tahu, ale neřekl bych, že těch dat bude příliš.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0