Сигурност на сесията, PHP

Сигурността на уебсайта се основава на управление на сесии. Когато потребителят се свърже със защитен сайт, той предоставя идентификационни данни, обикновено под формата на потребителско име и парола. Уеб сървърът няма представа кой потребител вече е влязъл и как се ориентира от страница на страница. Механизмът на сесията позволява на потребителите да не въвеждат парола всеки път, когато искат да извършат ново действие или да отидат на нова страница.

След удостоверяване на потребителя, уеб сървърът му предоставя идентификатор на сесия. Този идентификатор се съхранява в браузъра и се замества, когато е необходимо удостоверяване. Това избягва повтарящи се процеси за въвеждане на парола/вход. Всичко това се случва във фонов режим и не причинява дискомфорт на потребителя. Представете си, ако сте въвели вашето потребителско име и парола всеки път, когато преглеждате нова страница!

Идентификаторът на сесията е низ от символи или числа. Сървърът помни, че идентификаторът на сесията (SID) е даден на потребителя и позволява достъп. В резултат на това идентификаторът на сесията е много важен за идентификацията, поради което хакерите от години търсят начини за заобикаляне на удостоверяването.

И така, как да получите идентификатора на сесията? Има редица методи, използвани за получаване на идентификатор. Най-очевидните са сървърните атаки. Сървърът съхранява SID някъде и понякога е публично четимо място. Например, някои хостинг услуги използват папката/tmp за клиентски потребители и всеки потребител може да вижда идентификатори на сесии.

Следващият метод, използван за кражба на идентификатора на сесията, е чрез отгатване. Прогнозата се случва, когато нападателите са убедени във връзката между идентификаторите на сесията. Например, някои уеб системи използват увеличаващи се идентификатори всеки път, когато потребителят влезе. Познавайки една сесия, хакер може да определи друга. Друг метод е атака с груба сила. Това е прост, но потенциално ефективен метод за определяне на идентификатора на сесията. Хакерът преминава през всички възможни идентификатори на сесии, докато случайно не попадне на валиден такъв. Но това не е сериозна уязвимост, тъй като обикновено SID се генерира произволно и търсенето може да отнеме доста дълго време.