Sprawdziłem naszą aplikację internetową za pomocą funkcji Audyt w narzędziach programistycznych Google Chrome.Jak rozumieć ostrzeżenie o zabezpieczeniach w Google Chrome dla statycznego zasobu obsługiwanego przez Asp.net
Najpierw otrzymałem ostrzeżenie, informujące, że serwujemy naszą statyczną zawartość nie wymagającą buforowania: "Następujące zasoby jawnie nie mogą być buforowane. Rozważ utworzenie bufora, jeśli to możliwe".
Aby rozwiązać ten problem dodałem ten fragment do naszego web-config
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
zalecany w tym blogu: http://blogs.msdn.com/b/carlosag/archive/2009/06/09/are-you-caching-your-images-and-scripts-iis-seo-can-tell-you.aspx
Gdybym teraz zacząć nowe badanie w Google Chrome, otrzymuję nowe ostrzeżenie:
Następujące publicznie buforowane zasoby zawierają nagłówek Set-Cookie . Ta luka w zabezpieczeniach może powodować udostępnianie plików cookie przez wielu użytkowników.
Czy możesz wyjaśnić potencjalne zagrożenie bezpieczeństwa i jakie jest możliwe rozwiązanie w Asp.net?
[Aktualizacja]
Po kilku dalszych badań, myślę, że to może być związane z tym pytanie:
Why is ASP.NET forms authentication setting cookies on a static image request?
Ale nie mogę umieścić zagadkę razem. Sytuacja nie jest dokładnie taka sama, podczas gdy nasza aplikacja może być skonfigurowana do korzystania z uwierzytelniania formularzy, otrzymałem ostrzeżenie podczas korzystania z uwierzytelniania systemu Windows.
Czy jesteś pewien, że te dwa zdarzenia są połączone? Zagrożenie bezpieczeństwa jest całkiem jasne, ten sam plik cookie może być używany przez wielu użytkowników, oczywiście nie jest to problemem na pojedynczym komputerze użytkownika. –
@Ramhound Przynajmniej narzędzia chrome uważają, że istnieje połączenie.Jeśli usunę instrukcję cache z webconfig, otrzymam zamiast tego inne ostrzeżenie: Następujące zasoby są jawnie niekatowalne. Rozważ umieszczenie ich w pamięci podręcznej, jeśli to możliwe: –
Możesz dodać nagłówek "Cache-Control" z wartością "private", która oznacza, że zasób może być buforowany tylko przez klienta, ale nie przez pośrednie maszyny. W ten sposób ten sam plik cookie nie powinien być zwracany różnym klientom. –