CSRF a komunikace s mobilní appkou

2bad2furious
Člen | 26
+
0
-

Ahoj,
dělám API pro mobilní aplikaci a chtěl bych použít CSRF pro zabezpečení formulářů. Naplno nechápu systém CSRF, takže si nejsem jistý, co přesně chci xd

Pokud to však chápu, tak bych rád vygeneroval token pro appku, poslal jí ho a očekával tenhle token při následném odeslání formuláře. Vůbec nevím, kdy se však tento token generuje/kdy a kde si ho mohu vygenerovat.

Předem děkuji za pomoc.

Editoval 2bad2furious (2. 6. 2018 7:58)

2bad2furious
Člen | 26
+
0
-

Odpovím si sám:

 public function beforeRender() {
        if ($this->isApi()) {

            /** @var Form $form */
            $form = $this->getComponent("registerForm");


            $this->sendJson(["_token_" => self::getNewToken($form)]);
        }
    }

....


protected static function getNewToken(Form $form):string{
        return $form->getComponent(Form::PROTECTOR_ID)->getControl()->value;
    }

Dosahuji při tom normální validace formuláře bez žádných zásahů. Appka se musí nejdříve připojit, dostane token a případně ještě cookie na sessionu.