10 Dicas de Segurança para Projetos Front End

1. Evite guardar tokens JWT (ou tokens importantes) na local storage

A LS é vulneravel a ataques XSS. O ideal é setar tokens num Http Only Signed Cookie, ou procurar outros meios de sessão afim de evitar a local storage pra guardar informaçõ…


This content originally appeared on DEV Community and was authored by Felippe Regazio

1. Evite guardar tokens JWT (ou tokens importantes) na local storage

A LS é vulneravel a ataques XSS. O ideal é setar tokens num Http Only Signed Cookie, ou procurar outros meios de sessão afim de evitar a local storage pra guardar informações sensiveis.

Referencia de leitura par ao item 1:

https://medium.com/kanlanc/heres-why-storing-jwt-in-local-storage-is-a-great-mistake-df01dad90f9e

2. Dados que serao interpretados como objetos ou HTML devem ser sanitizados e/ou escapados

Qualquer input/output vindo de wysiwyg, rich editor, markdown editor por exemplo. Isso evita ataque XSS (e roubo de tokens da storage rs)

Referencia de leitura para o item 2:

https://benhoyt.com/writings/dont-sanitize-do-escape/

3. Validações de input devem ocorrer no front e o backend

Jamais uma validação critica ou de regra de negocio deve ser front only. Ex: input de email valida se a str é email? Valide no front e no back. No front pra evitar request desnecessária, no back pra evitar ataques ao DB.

Referencia de leitura sobre o item 3:

https://www.invicti.com/blog/web-security/what-is-nosql-injection/

4. Não trafegue informações sensiveis via query param na URL

Exemplo: https://yoursite.com?token={important_token} - Se um atacante estiver assistindo o trafego da vitima ou fazendo sniffing, esse token nao sera criptografado e sera exposto mesmo "under ssl".

Referencia de leitura sobre o item 4:

https://www.acunetix.com/blog/web-security-zone/session-token-in-url-vulnerability/

5. Evite retornar/consumir um Array JSON diretamente via API

Tipo:

RESPONSE: "[{ ... }]"

Juro, isso expoe uma vulnerabilidade chamada "Primitive Object Override Attack" em que um atacante faz override de metodos de arrays. Pra saber mais, leia o link abaixo

Referencia de leitura sobre o item 5

https://dev.to/antogarand/why-facebooks-api-starts-with-a-for-loop-1eob

6. Evite setar innerHTML diretamente em elementos no DOM

Evite muito setar innerHTML no codigo principalmente se o valor passou por algum input de usuario. Se precisar, procure sanitizar ou escapar o conteudo. Sempre que possivel, prefira utilizar innerText/textContent.

Referencia de leitura sobre o item 6:

https://betterprogramming.pub/dom-manipulation-the-dangers-of-innerhtml-602f4119d905

7. Evite permitir ao usuario fazer o input de URL ou load de SVG

Por ex: usuario inputar url a ser usado numa tag IMG. Diversos ataques podem acontecer, desde XSS via SVG ou PDF, ou Sniffing ao apontar o GET pra uma URL maliciosa
Referencia de leitura sobre o item 7 (embora fale sobre svg, a dinamica pra outros artefatos eh parecida: algo vem junto seja via request ou binary).

https://research.securitum.com/do-you-allow-to-load-svg-files-you-have-xss/

8. Utilize noreferrer e noopener para links cross-origin (de outro dominio)

Quando vc abre uma nova aba, a depender do contexto o browser pode enviar o objeto window da anterior para o novo endereço, permitindo assim umas bizarrices, vide link abaixo.
Referencia de leitura sobre o item 8:

https://web.dev/external-anchors-use-rel-noopener/

9. Adicione a Header "X-Frame-Options: DENY" ao seu front se possivel

Isso evita que pessoas embedem seu serviço num iframe e pratiquem ataques como "click highjack" em que um site é posto num iframe, e uma div eh inserida por cima pra interceptar o comportamento.

Referencia de leitura sobre o item 9:

https://www.imperva.com/learn/application-security/clickjacking/

10. Essa é a mais simples de todas

Procure manter as dependencias atualizadas e ficar esperto com as vulnerabilidades que sao reportadas em pacotes NPM.


This content originally appeared on DEV Community and was authored by Felippe Regazio


Print Share Comment Cite Upload Translate Updates
APA

Felippe Regazio | Sciencx (2022-03-23T22:42:53+00:00) 10 Dicas de Segurança para Projetos Front End. Retrieved from https://www.scien.cx/2022/03/23/10-dicas-de-seguranca-para-projetos-front-end/

MLA
" » 10 Dicas de Segurança para Projetos Front End." Felippe Regazio | Sciencx - Wednesday March 23, 2022, https://www.scien.cx/2022/03/23/10-dicas-de-seguranca-para-projetos-front-end/
HARVARD
Felippe Regazio | Sciencx Wednesday March 23, 2022 » 10 Dicas de Segurança para Projetos Front End., viewed ,<https://www.scien.cx/2022/03/23/10-dicas-de-seguranca-para-projetos-front-end/>
VANCOUVER
Felippe Regazio | Sciencx - » 10 Dicas de Segurança para Projetos Front End. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/03/23/10-dicas-de-seguranca-para-projetos-front-end/
CHICAGO
" » 10 Dicas de Segurança para Projetos Front End." Felippe Regazio | Sciencx - Accessed . https://www.scien.cx/2022/03/23/10-dicas-de-seguranca-para-projetos-front-end/
IEEE
" » 10 Dicas de Segurança para Projetos Front End." Felippe Regazio | Sciencx [Online]. Available: https://www.scien.cx/2022/03/23/10-dicas-de-seguranca-para-projetos-front-end/. [Accessed: ]
rf:citation
» 10 Dicas de Segurança para Projetos Front End | Felippe Regazio | Sciencx | https://www.scien.cx/2022/03/23/10-dicas-de-seguranca-para-projetos-front-end/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.