Cache-Control w akcji, czyli “to nie moje dane!”

Wczoraj natknąłem się na praktyczny przykład podatności, która może wynikać z braku właściwie ustawionego nagłówka Cache-Control. Mechanizm wystąpienia podatności jest bardzo prosty: serwer nie oznacza określonej treści zawierającej dane specyficzne dla użytkownika odpowiednim nagłówkiem Cache-Control (lub nie ustawia nagłówka Expires , który wskazuje, że treść już wygasła). Kolejny użytkownik korzystający z tej samej przeglądarki po uwierzytelnieniu widzi nie swoje dane. Dzieje się tak, bo przeglądarka po prostu nie odwołuje się do serwera, by pobrać nową wersję strony. Nie robi tego, bo wersja, którą pobrała poprzednim razem, jest wciąż ważna.

By było ciekawiej, problem objawia się tylko w przeglądarce Internet Explorer 8 (w innych wersjach nie sprawdzałem). W przypadku Firefox , Opera i Chrome problem, w tym konkretnym przypadku, nie występuje.

Oryginał tego wpisu dostępny jest pod adresem Cache-Control w akcji, czyli “to nie moje dane!”

Autor: Paweł Goleń