CSRF a komunikace s mobilní appkou
- 2bad2furious
- Člen | 26
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
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.