Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 32621|Отговор: 2

[Уязвимост в сигурността] Липсващи или несигурни уязвимости в заглавието "Content-Security-Policy"

[Копирай линк]
Публикувано в 11.06.2021 г. 10:36:39 ч. | | | |
HTTP отговорният заглавие Content-Security-Policy позволява на сайта да контролира кои ресурси потребителският агент зарежда за дадена страница. С изключение на специални случаи, наборът от политики основно включва уточняване на изходния и скриптния край на сървъра. Това ще помогне да се предотвратят атаки с крос-сайт скриптове

Документация:Входът към хиперлинк е видим.

Тази статия описва Политиката за сигурност на съдържанието на W3C, или накратко CSP. Както подсказва името, тази спецификация е свързана със сигурността на съдържанието и се използва основно за определяне кои ресурси може да зарежда една страница и за намаляване на появата на XSS.

Ранният Chrome поддържаше CSP чрез отговорния хедър X-WebKit-CSP, докато Firefox и IE поддържаха X-Content-Security-Policy, а Chrome25 и Firefox23 започнаха да поддържат стандартната Content-Security-Policy.

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


Първо, нека създадем нов проект ASP.NET MVC, създадем нов js скрипт и динамично заредим js кода на Baidu статистиката, както следва:




Както е показано на горната фигура, можем да видим JS скриптовия код, който е успешно въведен в трета страна (Baidu), ако има някакъв злонамерен код в JS на трета страна, като кражба на бисквитки, модифициране на съдържание, прескачане на връзки и др.

Как мога да спра въвеждането на несигурни JS скриптове на трети страни?

Заобиколно решение

Отговорна главаДобавете "Политика-Сигурност-Съдържание"Например:

Content-Security-Policy: default-src 'self' Входът към хиперлинк е видим.;
                         connect-src "няма";
Content-Security-Policy: connect-src Входът към хиперлинк е видим.
                         script-srcВходът към хиперлинк е видим.

Директива
Пример за стойност на инструкциите
илюстрирам
default-src
"Себе си" cnd.a.com
Дефинирайте стандартната политика за зареждане за всички видове ресурси (JS, IMAGE, CSS, WEB FONT, AJAX заявки, iframes, мултимедия и др.) и използвайте по подразбиране за определени типове ресурси, ако няма отделна дефинирана политика.
script-src
"себе си" js.a.com
Дефинирайте политика за зареждане на JavaScript.
Style-SRC
"Себе си" css.a.com
Дефинирайте политика за зареждане за стил.
IMG-SRC
"себе си" img.a.com
Дефинирайте политика за зареждане на изображения.
connect-src
"аз"
Политики за зареждане на заявки от Ajax, WebSockets и др. Ако не е разрешено, браузърът симулира отговор със статус 400.
font-src
font.a.com
Политика за зареждане на WebFont.
Object-src
"аз"
<object><embed> <applet> Политики за зареждане на плъгини като flash въведени за тагове като , или .
Media-src
media.a.com
<audio> <video> Въведени стратегии за зареждане на HTML мултимедия за тагове като или .
frame-src
"аз"
Политика за зареждане на рамки.
Пясъчник
Допустими форми
Активирайте пясъчника (подобно на пясъчника в iframe) за поискания ресурс.
доклад-ури
/report-uri
Кажете на браузъра на кой адрес да подадете лог информация, ако поисканият ресурс не е разрешен от политиката. Специално: Ако искате браузърът да докладва само логове и да не блокира нищо, можете да използвате заглавието Content-Security-Policy-Report-Only.

Нека модифицираме web.config файла на проекта, за да добавим персонализиран отговорен заглавие по следния начин:

Повторете проекта, както е показано по-долу:



Браузърът успешно блокира зареждането на js скриптове на трети страни:

Отказах да заредя скрипта 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319', защото той нарушава следната директива за Политика за сигурност на съдържанието: "script-src 'self' http://localhost:56888/ ". Обърнете внимание, че 'script-src-elem' не е изрично зададено, затова 'script-src' се използва като резервен вариант.
(Край)




Предишен:ASP.NET Ред на изпълнение на MVC HttpApplication
Следващ:За да обобщим популярната енциклопедия на браузъра User-Agent
Публикувано в 17.12.2021 г. 22:38:43 ч. |
Научете !!!!!!!!!!!!!!
Публикувано в 18.10.2022 г. 17:16:34 ч. |
Търся отдавна и научавам малко
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com