Skip to content

Commit

Permalink
Tradução do Securing Rails Applications > 2 Sessions > 2.1 e 2.2 (cam…
Browse files Browse the repository at this point in the history
…puscode#655)

* Tradução do 'Securing Rails Applications > 2.1 What are Sessions?'

* Tradução do 'Securing Rails Applications > 2. Sessions

- Tradução do sub-capítulo 2.1 What are Sessions?
- Tradução do sub-capítulo 2.2 Session Hijacking

* Corrige typos

Co-authored-by: Henrique Morato <[email protected]>

Co-authored-by: Henrique Morato <[email protected]>
  • Loading branch information
thais-kusuki-vindi and HenriqueMorato authored Oct 22, 2021
1 parent 1fae69e commit 283307a
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions pt-BR/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,42 +35,42 @@ As ameaças contra aplicações web incluem sequestro de contas de usuário, des

Para desenvolver aplicações web seguras, você deve se manter atualizado(a) em todas as camadas e conhecer seus inimigos. Para se manter atualizado(a), inscreva-se em listas de discussão de segurança, leia blogs de segurança e torne as atualizações e verificações de segurança um hábito (consulte o capítulo [Recursos Adicionais](#recursos-adicionais)). Isso é feito manualmente porque é assim que você encontra os problemas desagradáveis de segurança.

Sessions
Sessões
--------

This chapter describes some particular attacks related to sessions, and security measures to protect your session data.
Este capítulo descreve alguns ataques específicos relacionados à sessões e medidas de segurança para proteger seus dados de sessão.

### What are Sessions?
### O que são Sessões?

INFO: Sessions enable the application to maintain user-specific state, while users interact with the application. For example, sessions allow users to authenticate once and remain signed in for future requests.
INFO: As sessões permitem que a aplicação mantenha um estado específico do usuário, enquanto os usuários interagem com a aplicação. Por exemplo, as sessões permitem que os usuários se autentiquem uma vez e permaneçam conectados para requisições futuras.

Most applications need to keep track of state for users that interact with the application. This could be the contents of a shopping basket, or the user id of the currently logged in user. This kind of user-specific state can be stored in the session.
A maioria das aplicações precisa rastrear o estado dos usuários que interagem com a aplicação. Pode ser, por exemplo, o conteúdo de um carrinho de compras ou a identificação do usuário conectado no momento. Esse tipo de estado específico pode ser armazenado na sessão.

Rails provides a session object for each user that accesses the application. If the user already has an active session, Rails uses the existing session. Otherwise a new session is created.
O Rails fornece um objeto de sessão para cada usuário que acessa a aplicação. Se o usuário já tem uma sessão ativa, o Rails utiliza a sessão existente. Caso contrário, uma nova sessão será criada.

NOTE: Read more about sessions and how to use them in [Action Controller Overview Guide](action_controller_overview.html#session).
NOTE: Leia mais sobre as sessões e como utilizá-las no [Guia Action Controller Overview](action_controller_overview.html#sessao).

### Session Hijacking
### Sequestro de Sessão

WARNING: _Stealing a user's session ID lets an attacker use the web application in the victim's name._
WARNING: _O roubo do ID de sessão de um usuário permite que um invasor utilize a aplicação web em nome da vítima._

Many web applications have an authentication system: a user provides a user name and password, the web application checks them and stores the corresponding user id in the session hash. From now on, the session is valid. On every request the application will load the user, identified by the user id in the session, without the need for new authentication. The session ID in the cookie identifies the session.
Muitas aplicações web tem um sistema de autenticação: um usuário fornece um nome de usuário e senha, a aplicação confere e armazena o ID de usuário correspondente no _hash_ da sessão. A partir de agora, a sessão é válida. A cada requisição a aplicação carregará o usuário, identificado pelo ID do usuário na sessão, sem a necessidade de uma nova autenticação. O ID da sessão no _cookie_ identifica a sessão.

Hence, the cookie serves as temporary authentication for the web application. Anyone who seizes a cookie from someone else, may use the web application as this user - with possibly severe consequences. Here are some ways to hijack a session, and their countermeasures:
Portanto, o _cookie_ serve como autenticação temporária para a aplicação web. Qualquer pessoa que obter um _cookie_ de outra pessoa pode utilizar a aplicação web como se fosse esse usuário - com consequências possivelmente graves. Aqui estão algumas maneiras de sequestrar uma sessão e suas medidas preventivas:

* Sniff the cookie in an insecure network. A wireless LAN can be an example of such a network. In an unencrypted wireless LAN, it is especially easy to listen to the traffic of all connected clients. For the web application builder this means to _provide a secure connection over SSL_. In Rails 3.1 and later, this could be accomplished by always forcing SSL connection in your application config file:
* Monitore o _cookie_ em uma rede insegura. Uma rede LAN (_Local Area Network_ - Rede Local, em tradução livre) _wireless_ (sem fio) pode ser um exemplo de tal rede. Em uma rede local _wireless_ não criptografada, é especialmente fácil "escutar" o tráfego de todos os clientes conectados. Para a construção de aplicações web, isso significa _fornecer uma conexão segura por SSL (Secure Sockets Layer - Camada de Soquete Seguro, em tradução livre)_. No Rails 3.1 e posterior, isso poder ser feito sempre forçando a conexão SSL no arquivo de configuração da sua aplicação:

```ruby
config.force_ssl = true
```

* Most people don't clear out the cookies after working at a public terminal. So if the last user didn't log out of a web application, you would be able to use it as this user. Provide the user with a _log-out button_ in the web application, and _make it prominent_.
* A maioria das pessoas não limpa os _cookies_ depois de trabalhar em um computador público. Portanto, se o último usuário não se desconectou de uma aplicação web, você poderá utilizar a aplicação como se fosse esse usuário. Forneça ao usuário um **botão para encerrar a sessão** (_logout_) e **destaque-o**.

* Many cross-site scripting (XSS) exploits aim at obtaining the user's cookie. You'll read [more about XSS](#cross-site-scripting-xss) later.
* Muitas das explorações de [_cross-site scripting (XSS)_](https://pt.wikipedia.org/wiki/Cross-site_scripting) visam obter o _cookie_ do usuário. Você lerá [mais sobre XSS](#cross-site-scripting-xss) mais adiante.

* Instead of stealing a cookie unknown to the attacker, they fix a user's session identifier (in the cookie) known to them. Read more about this so-called session fixation later.
* Em vez de roubar um _cookie_ que é desconhecido para o invasor, eles corrigem um identificador de sessão de usuário (no _cookie_) conhecido por eles. Leia mais sobre esse assunto no capítulo chamado Fixação de Sessão mais adiante.

The main objective of most attackers is to make money. The underground prices for stolen bank login accounts range from 0.5%-10% of account balance, $0.5-$30 for credit card numbers ($20-$60 with full details), $0.1-$1.5 for identities (Name, SSN, and DOB), $20-$50 for retailer accounts, and $6-$10 for cloud service provider accounts, according to the [Symantec Internet Security Threat Report (2017)](https://www.symantec.com/content/dam/symantec/docs/reports/istr-22-2017-en.pdf).
O principal objetivo da maioria dos invasores é ganhar dinheiro. Os preços clandestinos para login de contas bancárias roubadas variam de 0.5%-10% do saldo da conta, $0.5-$30 para números de cartão de crédito ($20-$60 com detalhes completos), $0.1-$1.5 para identidades (nome, SSN - semelhante ao CPF no Brasil - e data de nascimento), $20-$50 para contas de varejistas e $6-$10 para contas de provedor de serviço em nuvem, de acordo com o [Relatório de Ameaças à Segurança na Internet da Symantec (2017, em inglês)](https://www.symantec.com/content/dam/symantec/docs/reports/istr-22-2017-en.pdf)

### Armazenamento de Sessão

Expand Down

0 comments on commit 283307a

Please sign in to comment.