Histórico da Página
...
Para realizar as configurações abaixo será necessário acessar o arquivo web.config da pasta FrameHTML. da pasta do pep em FrameHTML
O trecho de código abaixo deve ser incluído no nó <system.webServer>
...
Bloco de código |
---|
<httpRuntime enableVersionHeader="false" /> |
Criptografar o ViewState
O ViewState, caso não esteja criptografado, pode abrir brechas para roubo de informações sensíveis.
...
Bloco de código |
---|
<pages validateRequest="true" [...] viewStateEncryptionMode="Always" /> |
Configurando os Headers
Atributo | Valores possíveis | Descrição | Referência |
---|---|---|---|
X-Content-Type-Options | nosniff | Para evitar o sniffing do tipo MIME, você pode adicionar o cabeçalho X-Content-Type-Options. | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options |
X-Xss-Protection | 0 1 0; mode=block | O X-Xss-Protection é um recurso implementado no navegador mais moderno, que interrompe o carregamento da página quando um ataque de script entre sites é detectado. | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection |
X-Frame-Options | X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/ | O cabeçalho X-Frame-Options garante que os hackers não cX-Content-Type-Optionsriem iframe para o seu site, a fim de induzi-lo a clicar em links que você nunca quis. | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options |
Content Security Policy (CSP) | default-src script-src style-src (Obrigatório incluir 'unsafe-inline') img-src object-src base-uri connect-src (incluir a api do host, a mesma configurada no config.json) font-src frame-src img-src | A diretiva Content-Security-Policy (CSP) é um cabeçalho de segurança importante que ajuda a mitigar os riscos de ataques como XSS (Cross-Site Scripting) e outros tipos de ataques baseados em injeção de código. Ela permite que os desenvolvedores controlem quais recursos são carregados em uma página web e de onde eles podem ser carregados. | https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP |
Sugestão de configuração:
Bloco de código |
---|
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appSettings> <add key="StackTraceVisible" value="false" /> </appSettings> <system.web> <compilation debug="false" /> </system.web> <system.webServer> <httpProtocol> <customHeaders> <add name="Content-Security-Policy" value="default-src 'self'; script-src 'self'; https://integrations.memed.com.br https://cdn.memed.com.br https://cdn.rudderlabs.com; style-src 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src data: 'self' http://{HOST_API_URL}localhost:8051 ws://{HOST_API_URL}; font-src 'self'; frame-src 'self'; img-src 'self' data:localhost:8051 https://api.tilesrudderlabs.mapbox.com https://c*.tilememed.openstreetmapcom.orgbr https://aipv4.tileicanhazip.openstreetmap.orgcom https://bapi.tileipify.openstreetmap.org org ; font-src 'self';frame-src 'self' https://apiintegrations.qrservermemed.com https://chart.googleapis.com; manifest.br; img-src 'self'; media data:;manifest-src 'self'; report-uri https://676eff58cfdd640ab319c568.endpoint.csper.io?builder=true&v=5; media-src 'self';worker-src 'none';" /> <add name="X-Content-Type-Options" value="nosniff" /> <add name="X-Xss-Protection" value="1; mode=block" /> <add name="X-Frame-Options" value="SAMEORIGIN" /> <add name="Cache-Control" value="no-store" /> <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" /> <add name="Permissions-Policy" value="camera=(self), microphone=(self), geolocation=(self), fullscreen=(self)" /> <add name="Referrer-Policy" value="no-referrer-when-downgrade" /> <add name="Cross-Origin-Embedder-Policy" value="same-origin" /> <add name="Cross-Origin-Resource-Policy" value="same-origin" /> <add name="Cross-Origin-Opener-Policy" value="same-origin" /> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> <security> <requestFiltering removeServerHeader="true"> <verbs> <add verb="TRACE" allowed="false" /> </verbs> </requestFiltering> </security> </system.webServer> <system.web> <httpRuntime enableVersionHeader="false" /> <pages viewStateEncryptionMode="Always" /> </system.web> </configuration> |
Onde tiver o {HOST_API_URL}, substituir pelo endereço da api do host, o mesmo apontado no arquivo config.json
Informações |
---|
ATENÇÃO! Todas as informações sugeridas acima foram checadas e testadas em um ambiente controlado com o apoio do nosso time de segurança e com resultados de Pentests executados internamente ou externamente pelos nossos clientes. No entanto, é recomendado que as configurações sejam realizadas inicialmente em um ambiente de homologação, devido à variedade e complexidade das configurações e especificidades dos servidores de cada cliente. |
...