Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 32621|Odpowiedź: 2

[Luka bezpieczeństwa] Brakujące lub niebezpieczne luki w nagłówku "Content-Security-Policy"

[Skopiuj link]
Opublikowano 11.06.2021 10:36:39 | | | |
Nagłówek odpowiedzi HTTP Content-Security-Policy pozwala stronie kontrolować, które zasoby użytkownik ładuje dla danej strony. Z wyjątkiem wyjątkowych przypadków, zestaw zasad polega głównie na określaniu punktów końcowych serwera źródłowego i skryptu. Pomoże to powstrzymać ataki skryptowe na różne strony

Dokumentacja:Logowanie do linku jest widoczne.

Ten artykuł opisuje Politykę Bezpieczeństwa Treści W3C, w skrócie CSP. Jak sama nazwa wskazuje, ta specyfikacja dotyczy bezpieczeństwa treści i służy głównie do określenia, które zasoby może się ładować na stronie, oraz do ograniczenia występowania XSS.

Wczesne Chrome obsługiwało CSP za pomocą nagłówka odpowiedzi X-WebKit-CSP, podczas gdy Firefox i IE wspierały X-Content-Security-Policy, a Chrome25 i Firefox23 zaczęły wspierać standardową Content-Security-Policy.

Mogą być zbierane wrażliwe informacje o aplikacjach internetowych, takie jak nazwy użytkowników, hasła, nazwy maszyn i/lub wrażliwe lokalizacje plików
Początkujący użytkownicy mogą być zachęcani do podania wrażliwych informacji, takich jak nazwy użytkowników, hasła, numery kart kredytowych, numery ubezpieczenia społecznego itp


Najpierw stwórzmy nowy projekt ASP.NET MVC, utwórzmy nowy skrypt js i dynamicznie załadujmy kod js statystyk Baidu, w następujący sposób:




Jak pokazano na powyższym rysunku, możemy zobaczyć kod skryptu JS, który został pomyślnie wprowadzony do firmy trzeciej (Baidu), jeśli w JS zewnętrznej firmy znajduje się złośliwy kod, taki jak kradzież ciasteczek, modyfikowanie treści, przeskakiwanie linków itp.

Jak mogę powstrzymać wprowadzanie niebezpiecznych skryptów JS firm trzecich?

Obejście

Głowica odpowiedziDodaj "Content-Security-Policy"na przykład:

Content-Security-Policy: default-src 'self' Logowanie do linku jest widoczne.;
                         connect-src 'brak';
Content-Security-Policy: connect-src Logowanie do linku jest widoczne.
                         script-srcLogowanie do linku jest widoczne.

Dyrektywa
Przykład wartości instrukcji
Ilustrują
default-src
'ja' cnd.a.com
Zdefiniuj domyślną politykę ładowania dla wszystkich typów zasobów (JS, IMAGE, CSS, WEB FONT, AJAX requests, iframes, multimedia itd.) i użyj domyślnej dla określonych typów zasobów, jeśli nie ma odrębnej zdefiniowanej polityki.
script-src
'ja' js.a.com
Zdefiniuj politykę ładowania JavaScript.
Style-SRC
'ja' css.a.com
Zdefiniuj politykę ładowania dla stylu.
IMG-SRC
'ja' img.a.com
Zdefiniuj politykę ładowania dla obrazów.
connect-src
'ja'
Polityki ładowania żądań z Ajax, WebSockets itd. Jeśli nie jest to dozwolone, przeglądarka symuluje odpowiedź ze statusem 400.
font-src
font.a.com
Polityka ładowania WebFont.
object-src
'ja'
<object><embed> <applet> Wprowadzono politykę ładowania wtyczek takich jak flash dla tagów takich jak , lub .
media-src
media.a.com
<audio> <video> Strategie ładowania multimediów HTML wprowadzone dla tagów takich jak lub .
Frame-SRC
'ja'
Polityka ładowania klatek.
Piaskownica
Formy dopuszczające
Włącz sandbox (podobny do właściwości sandboxa w iframe) dla żądanego zasobu.
Raport-uri
/report-uri
Poinformuj przeglądarkę, na jaki adres ma przesłać dane logowe, jeśli żądany zasób nie jest dozwolony przez politykę. Specjalne: Jeśli chcesz, aby przeglądarka raportowała tylko logi i nic nie blokowała, możesz użyć nagłówka Content-Security-Policy-Report-Only.

Zmodyfikujmy plik web.config projektu, aby dodać niestandardowy nagłówek odpowiedzi w następujący sposób:

Ponownie uruchom projekt zgodnie z poniższym:



Przeglądarka skutecznie zablokowała ładowanie skryptów js firm trzecich:

Odmówił załadowania skryptu 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319', ponieważ narusza on następującą dyrektywę Polityki Bezpieczeństwa Treści: "script-src 'self' http://localhost:56888/ ". Należy zauważyć, że 'script-src-elem' nie zostało ustawione wprost, więc jako alternatywa używa się 'script-src'.
(Koniec)




Poprzedni:ASP.NET Kolejność wykonywania MVC HttpApplication
Następny:Podsumowując popularną encyklopedię User-Agent w przeglądarce
Opublikowano 17.12.2021 22:38:43 |
Dowiedz się !!!!!!!!!!!!!!
Opublikowano 18.10.2022 17:16:34 |
Szukam od dawna i trochę się uczę
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com