Configurando o HTTP
Visão geral das opções de configuração para o Nette HTTP.
Se você não estiver usando toda a estrutura, mas apenas esta biblioteca, leia como carregar a configuração.
Cabeçalhos HTTP
Por razões de segurança, a estrutura envia um cabeçalho X-Frame-Options: SAMEORIGIN
, que diz que uma página
pode ser exibida dentro de outra página (no elemento <iframe>
) somente se estiver no mesmo domínio. Isto pode
ser indesejado em certas situações (por exemplo, se você estiver desenvolvendo um aplicativo do Facebook), portanto,
o comportamento pode ser alterado através da definição de quadros frames: http://allowed-host.com
.
Política de Segurança de Conteúdo
Os cabeçalhos Content-Security-Policy
(doravante denominados CSP) podem ser facilmente montados, sua descrição
pode ser encontrada na descrição do CSP. As diretrizes CSP (tais como
script-src
) podem ser escritas como cordas de acordo com a especificação ou como matrizes de valores para melhor
legibilidade. Então não há necessidade de escrever aspas em torno de palavras-chave, como 'self'
. A Nette também
gerará automaticamente um valor de nonce
, portanto 'nonce-y4PopTLM=='
será enviado no cabeçalho.
Use <script n:nonce>...</script>
nos gabaritos e o valor nonce será preenchido automaticamente.
Fazer sites seguros em Nette é realmente fácil.
Da mesma forma, os cabeçalhos Content-Security-Policy-Report-Only
(que podem ser usados em paralelo com o CSP) e
a Política de Recursos podem ser
acrescentados:
Cookie HTTP
Você pode alterar os valores padrão de alguns parâmetros do Nette\HttpResposta::setCookie() e métodos de sessão.
A opção cookieDomain
determina quais domínios (origens) podem aceitar cookies. Se não especificado, o cookie
é aceito pelo mesmo (sub)domínio que é definido por ele, excluindo seus subdomínios. Se cookieDomain
for
especificado, então os subdomínios também serão incluídos. Portanto, a especificação do cookieDomain
é menos
restritiva do que a omissão.
Por exemplo, se cookieDomain: nette.org
estiver definido, o cookie também está disponível em todos os
subdomínios como doc.nette.org
. Isto também pode ser conseguido com o valor especial domain
, ou seja,
cookieDomain: domain
.
O valor padrão de cookieSecure
é auto
o que significa que se o site estiver rodando em HTTPS, os
cookies serão enviados com a bandeira Secure
e, portanto, só estarão disponíveis via HTTPS.
Proxy HTTP
Se o site estiver rodando atrás de um proxy HTTP, digite o endereço IP do proxy para que a detecção de conexões HTTPS
funcione corretamente, assim como o endereço IP do cliente. Ou seja, para que Nette\Http\Request::getRemoteAddress() e isSecured() retornem os valores corretos e os links sejam gerados com o protocolo
https:
nos templates.
Sessão
Configurações básicas das sessões:
A opção autoStart
controla quando iniciar a sessão. O valor always
significa que a sessão é
sempre iniciada quando a aplicação é iniciada. O valor smart
significa que a sessão será iniciada quando a
aplicação começar somente se ela já existir, ou no momento em que quisermos ler ou escrever para ela. Finalmente, o valor
never
desabilita o início automático da sessão.
Você também pode definir todas as diretrizes de sessão PHP (em formato camelCase) e também lerAndClose. Exemplo:
Sessão Cookie
O cookie da sessão é enviado com os mesmos parâmetros que os outros cookies, mas você pode alterá-los para ele:
A opção cookieSamesite
afeta se o cookie é enviado com pedidos de origem cruzada, o que proporciona alguma proteção
contra falsificações em locais
cruzados.
Serviços de DI
Esses serviços são adicionados ao contêiner DI:
Nome | Tipo | Descrição |
---|---|---|
http.request |
Nette\Http\Request | solicitação HTTP |
http.response |
Nette\Http\Response | resposta HTTP |
session.session |
Nette\Http\Session | gerenciamento de sessão |