freeCodeCamp/guide/portuguese/php/security/session-hijacking/index.md

1.5 KiB

title localeTitle
Session Hijacking Sequestro de Sessão

Sequestro de Sessão

O sequestro de sessão é uma vulnerabilidade causada por um invasor que obtém acesso ao identificador de sessão de um usuário e pode usar a conta de outro usuário para representá-lo. Isso geralmente é usado para obter acesso a uma conta de usuário administrativo.

Defesa contra ataques de sequestro de sessão em PHP

Para se defender contra ataques de invasão de sessão, você precisa verificar as informações de localização e navegador do usuário atual em relação às informações armazenadas sobre a sessão. Abaixo está um exemplo de implementação que pode ajudar a mitigar os efeitos de um ataque de seqüestro de sessão. Ele verifica o endereço IP, o agente do usuário e se a sessão expirou, removendo uma sessão antes que ela seja retomada.

<?php 
 session_start(); 
 
 // Does IP Address match? 
 if ($_SERVER['REMOTE_ADDR'] != $_SESSION['ipaddress']) 
 { 
 session_unset(); 
 session_destroy(); 
 } 
 
 // Does user agent match? 
 if ($_SERVER['HTTP_USER_AGENT'] != $_SESSION['useragent']) 
 { 
  session_unset(); 
  session_destroy(); 
 } 
 
 // Is the last access over an hour ago? 
 if (time() > ($_SESSION['lastaccess'] + 3600)) 
 { 
  session_unset(); 
  session_destroy(); 
 } 
 else 
 { 
  $_SESSION['lastaccess'] = time(); 
 } 

Mais Informações: