Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 32621|Відповідь: 2

[Вразливість безпеки] Відсутні або незахищені вразливості в заголовку «Політика безпеки контенту»

[Копіювати посилання]
Опубліковано 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 почали підтримувати стандартну політику безпеки контенту.

Може збиратися конфіденційна інформація про веб-додатки, така як імена користувачів, паролі, імена машин та/або конфіденційні місця розташування файлів
Початківців можна переконати надати конфіденційну інформацію, таку як імена користувачів, паролі, номери кредитних карток, номери соціального страхування тощо


Спочатку створимо новий проєкт ASP.NET MVC, створимо новий js-скрипт і динамічно завантажимо js-код статистики Baidu, наступним чином:




Як показано на рисунку вище, ми можемо побачити JS-скрипт-код, який успішно впроваджений у третю сторону (Baidu), якщо в сторонньому JS є шкідливий код, наприклад, крадіжка cookie, зміна контенту, стрибок посилань тощо.

Як я можу зупинити появу незахищених сторонніх JS-скриптів?

Обхідний шлях

Головка реакціїДодати «Політику безпеки контенту»наприклад:

Content-Security-Policy: default-src 'self' Вхід за гіперпосиланням видно.;
                         connect-src «немає»;
Content-Security-Policy: connect-src Вхід за гіперпосиланням видно.
                         script-srcВхід за гіперпосиланням видно.

Директива
Приклад значення інструкції
Ілюстрації
default-src
'self' cnd.a.com
Визначте стандартну політику завантаження для всіх типів ресурсів (JS, IMAGE, CSS, WEB FONT, AJAX-запити, iframes, мультимедіа тощо) і використовуйте її за замовчуванням для певних типів ресурсів, якщо окремої політики немає.
script-src
'self' js.a.com
Визначте політику завантаження для JavaScript.
Стиль-SRC
'self' css.a.com
Визначте політику завантаження для стилю.
IMG-SRC
«я» img.a.com
Визначте політику завантаження для зображень.
connect-src
'self'
Політики завантаження запитів від Ajax, WebSockets тощо. Якщо це не дозволено, браузер імітує відповідь зі статусом 400.
font-src
font.a.com
Політика завантаження для WebFont.
Object-src
'self'
<object><embed> <applet> Політики завантаження плагінів, таких як Flash, введені для тегів, таких як , або .
Media-SRC
media.a.com
<audio> <video> Стратегії завантаження HTML-мультимедіа введені для тегів, таких як або .
frame-src
'self'
Політика завантаження кадрів.
пісочниця
Допустимі форми
Увімкніть пісочницю (подібно до властивості пісочниці iframe) для запитуваного ресурсу.
Звіт-URI
/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