6 – Segurança
Eu não falhei. Apenas descobri mil maneiras que não funcionam.
Thomas Edison
Usando o Componente Security
O uso do componente Security geralmente é feito no método beforeFilter() dos Controllers.
Apenas descomente no initialize() do AppController.php, veja.
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler', [
'enableBeforeRedirect' => false,
]);
$this->loadComponent('Flash');
/*
* Enable the following component for recommended CakePHP security settings.
* see https://book.cakephp.org/3.0/en/controllers/components/security.html
*/
$this->loadComponent('Security'); // DESCOMENTAR ESTA LINHA
}
Validações
Para que as validações do Cake surtam efeito precisamos criar nossos forms usando o formHelper.
Salt
Há alguns outros itens que podem ser configurados. Muitos desenvolvedores completam esta lista de itens, mas os mesmos não são obrigatórios para este tutorial. Um deles é definir uma sequência personalizada (ou “salt”) para uso em hashes de segurança.
A sequência personalizada (ou salt) é utilizada para gerar hashes de segurança. Se você utilizou o Composer, ele cuidou disso para você durante a instalação. Apesar disso, você precisa alterar a sequência personalizada padrão editando o arquivo config/app.php. Não importa qual será o novo valor, somente deverá ser algo difícil de descobrir:
'Security' => [ 'salt' => 'valor longo contendo mistura aleatória de valores.', ], Quando instalamos o Cake usando o composer, o composer já cuida disso e de outras tarefas para nós.
Componente CSRF
Cross Site Request Forgery
Ao habilitar o componente CSRF você obtém proteção contra ataques. CSRF ou Cross Site Request Forgery (Falsificação de solicitação entre sites) é uma vulnerabilidade comum nas aplicações web. Esta brecha permite que o atacante capture e responda uma requisição, e as vezes envie dados através de uma requisição usando tags de imagem ou recursos em outros domínios.
O CsrfComponent trabalha setando um cookie no navegador do usuário. Quando os formulários são criados com o Cake\View\Helper\FormHelper, um input hidden é adicionado contendo o token CSRF. Durante o evento Controller.startup, se a requisição for POST, PUT, DELETE ou PATCH o componente irá comparar os dados da requisição e o valor do cookie. Se um deles estiver faltando ou os dois valores forem imcompatíveis o componente lançará um Cake\Network\Exception\InvalidCsrfTokenException.
Por default o componente CSRF vem habilitado no routes.php.
Mais detalhes
http://book.cakephp.org/3.0/en/controllers/components/security.html
http://book.cakephp.org/3.0/en/core-libraries/security.html
http://book.cakephp.org/3.0/en/controllers/components/csrf.html
Comments fornecido por CComment