1. Introdução
A fixação de sessão é uma técnica que permite que hackers sequestrem a sessão de um usuário. Essa técnica aproveita o fato de que o servidor não altera o valor do ID da sessão toda vez que o usuário efetua login, mas usa um ID de sessão pré-existente. O processo de ataque inclui a obtenção de um ID de sessão válido (possivelmente acessando o site ), em seguida, encontrar uma maneira de a vítima fazer login no site com esse ID de sessão e, finalmente, quando a vítima fizer login com sucesso, o hacker navegará o site com sua conta. O cenário específico é o seguinte:
Mallory encontra um site, como http://unsafe.example.com, que aceita qualquer ID de sessão da solicitação sem autenticação.
Mallory enviará um e-mail para Alice, que contém o link http://unsafe.example.com/?SID=1234.
Alice vai para http://unsafe.example.com/?SID=1234. Em seguida, faça login no site.
Mallory simplesmente acessa http://unsafe.example.com/?SID=1234 e usa o site com a conta de Alice.
Mallory pode usar os seguintes métodos para definir cookies para Alice:
Inclua um script para definir cookies
Enviar pacote de resposta HTTP com valor de cookie MalloryEnviar pacote de resposta HTTP com valor de cookie Mallory
Use metatags HTML:

2. Exemplos
Exemplo 1 – Script do lado do cliente
Semelhante ao cenário mencionado acima, porém, neste caso, o ID da sessão não é passado na URL, mas sim no cookie. Para editar o valor do ID da sessão no cookie da vítima, o hacker irá inserir um pedaço de Javascript:
http://website.kom/document.cookie=”sessionid=abcd”;
Exemplo 2 - etiqueta
Semelhante ao script do lado do cliente, mas desta vez o hacker inserirá tags adicionais:
http://website.kon/
Exemplo 3 – resposta do cabeçalho HTTP
A inserção do ID de sessão também pode ser feita interceptando pacotes trocados entre o cliente e a aplicação Web e, em seguida, inserindo o campo Set-Cookie no cabeçalho.
![Web12: Técnica de hacking de fixação de sessão Web12: Técnica de hacking de fixação de sessão]()
3. Como prevenir
A causa desse erro é porque o servidor não gera novamente o ID da sessão após cada login bem-sucedido. Portanto, consertar esse erro não é difícil, basta alterar o valor do ID da Sessão e pronto. Em PHP, usamos a função session_regenerate_id() para regenerar a sessão.