У этого термина существуют и другие значения, см. CSS (значения).
XSS (англ.Cross-Site Scripting — «межсайтовый скриптинг») — подтип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницувредоносного кода (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с веб-сервером злоумышленника. Является разновидностью атаки «Внедрение кода».
Специфика подобных атак заключается в том, что вредоносный код может использовать авторизацию пользователя в веб-системе для получения к ней расширенного доступа или для получения авторизационных данных пользователя. Вредоносный код может быть вставлен в страницу как через уязвимость в веб-сервере, так и через уязвимость на компьютере пользователя[1].
Для термина используют сокращение «XSS», чтобы не было путаницы с каскадными таблицами стилей, использующими сокращение «CSS».
XSS находится на третьем месте в рейтинге ключевых рисков Web-приложений, согласно OWASP 2021[2]. Долгое время программисты не уделяли им должного внимания, считая их неопасными. Однако это мнение ошибочно: на странице или в HTTP-Cookie могут быть весьма уязвимые данные (например, идентификатор сессии администратора или номера платёжных документов), а там, где нет защиты от CSRF, атакующий может выполнить любые действия, доступные пользователю. Межсайтовый скриптинг может быть использован для проведения DoS-атаки[3].
Безопасность в Интернете обеспечивается с помощью многих механизмов, в том числе важной концепцией, известной как правило ограничения домена. Это правило разрешает сценариям, находящимся на страницах одного сайта (https://mybank.example.com), доступ к методам и свойствам друг друга без ограничений, но предотвращает доступ к большинству методов и свойств для страниц другого сайта (https://othersite.example.com)[4].
Межсайтовый скриптинг использует известные уязвимости в web-приложениях, серверах (или в системных плагинах, относящихся к ним). Используя одну из них, злоумышленник встраивает вредоносный контент в содержание уже взломанного сайта. В результате пользователь получает объединенный контент в веб-браузере, который был доставлен из надежного источника, и, таким образом, действует в соответствии с разрешениями, предоставленными для этой системы. Сумев внедрить необходимый скрипт в веб-страницу, злоумышленник может получить повышенные привилегии в отношении работы с веб-страницами, cookies и другой информацией, хранящейся в браузере для данного пользователя.
Выражение «межсайтинговый скриптинг» первоначально означало взаимодействие уязвимого веб-приложения с сайтом злоумышленника таким образом, чтобы в контексте атакуемого домена был выполнен JavaScript-код, подготовленный злоумышленником (отражённая или хранимая XSS уязвимость). Постепенно определение стало включать в себя и другие способы внедрения кода, включая использование устойчивых и не относящихся к JavaScript языков (например, ActiveX, Java, VBScript, Flash и даже HTML), создавая путаницу среди новичков в сфере информационной безопасности.[5]
Не существует чёткой классификации межсайтового скриптинга. Но большинство экспертов различает по крайней мере два типа XSS: «отраженные» («reflected XSS» или «Type 1») и «хранимые» («stored XSS» или «Type 2»).
Атака, основанная на отражённой уязвимости, на сегодняшний день является самой распространенной XSS-атакой[13]. Эти уязвимости появляются, когда данные, предоставленные веб-клиентом, чаще всего в параметрах HTTP-запроса или в форме HTML, исполняются непосредственно серверными скриптами для синтаксического анализа и отображения страницы результатов для этого клиента без надлежащей обработки[14]. Отражённая XSS-атака срабатывает, когда пользователь переходит по специально подготовленной ссылке.
Если сайт не экранирует угловые скобки, преобразуя их в «<» и «>», получим скрипт на странице результатов поиска.
Отражённые атаки, как правило, рассылаются по электронной почте или размещаются на Web-странице. URL приманки не вызывает подозрения, указывая на надёжный сайт, но содержит вектор XSS. Если доверенный сайт уязвим для вектора XSS, то переход по ссылке может привести к тому, что браузер жертвы начнет выполнять встроенный скрипт.
Хранимые (постоянные)
Хранимый XSS является наиболее разрушительным типом атаки. Хранимый XSS возможен, когда злоумышленнику удается внедрить на сервер вредоносный код, выполняющийся в браузере каждый раз при обращении к оригинальной странице. Классическим примером этой уязвимости являются форумы, на которых разрешено оставлять комментарии в HTML-формате без ограничений, а также другие сайты Веб 2.0 (блоги, вики, имиджборд), когда на сервере хранятся пользовательские тексты и рисунки. Скрипты вставляются в эти тексты и рисунки.
Фрагмент кода похищения ключа с идентификатором сессии (session ID):
XSS в DOM-модели возникает на стороне клиента во время обработки данных внутри JavaScript-сценария. Данный тип XSS получил такое название, поскольку реализуется через DOM (Document Object Model) — не зависящий от платформы и языка программный интерфейс, позволяющий программам и сценариям получать доступ к содержимому HTML и XML-документов, а также изменять содержимое, структуру и оформление таких документов. При некорректной фильтрации возможно модифицировать DOM атакуемого сайта и добиться выполнения JavaScript-кода в контексте атакуемого сайта.
Пример DOM-модели XSS — баг, найденный в 2011 году в нескольких JQuery-плагинах[15]. Методы предотвращения DOM-модели XSS включают меры, характерные для традиционных XSS, но с реализацией на javascript и отправкой в веб-страницы — проверка ввода и предотвращение атаки[16]. Некоторые фреймворки javascript имеют встроенные защитные механизмы от этих и других типов атак, например, AngularJS[17].
Из-за ошибок браузер может выполнять скрипты в SVG, нарушать правило Same Domain Policy. Это серьёзные ошибки; после обнаружения их быстро закрывают, однако в переходный период опасными становятся практически все сайты Веб 2.0: форумы, вики, имиджборды. Если такая ошибка обнаружилась, рекомендуется, пока не вышло обновление, пользоваться другим браузером.
Бывают и более тонкие ошибки, которые проявляются при очень специфичных условиях и крупного урона не наносят. Такие ошибки могут не исправляться годами и выгоднее исправить сайт, чем ждать обновления браузера.
Отсутствие экранирования спецсимволов HTML
Экранировать нужно все пользовательские тексты
phpBB, 2002 год[20][21]. Хотя URL картинок проверяется на протокол (разрешён только http:), сам URL никак не экранируется, и строкой наподобие
можно протащить в документ пользовательский скрипт.
Намного чаще встречаются ошибки на сайтах. Чтобы браузер гарантированно не принял строку за тег HTML, требуется заэкранировать пять символов: '"&<>. Сервер может экранировать не все символы (известный недостаток PHP[22]), либо веб-программист просто забывает заэкранировать строку.
Обычно в базах данных текст хранится неэкранированным, и экранировать требуется все пользовательские строки каждый раз, когда они встраиваются в HTML: например, если не заэкранирован URL картинки, пользователь может ввести что-то наподобие http://example.com/img.png" onmouseover="javascript:DoSomething();.
Многие сайты позволяют форматирование текста с помощью какого-либо языка разметки (HTML, BBCode, вики-разметка). Часто не проводится полный лексический анализ языка разметки, а лишь преобразование в «безопасный» HTML с помощью регулярных выражений[23]. Это упрощает программирование, однако требует досконального понимания, какими путями скрипт может проникнуть в результирующий HTML-код.
Отсутствие фильтрации атрибутов и их значений в разрешённых тегах
Типичным примером будет ссылка <a href="javascript:DoSomething()">. Даже если форум позволяет внешние ссылки, не стоит пускать протоколы javascript: и data:.
Не являются XSS, но не менее вредны и другие атаки: хакер может указать в качестве адреса сервер, имеющий узкий интернет-канал, парализуя его работу большим количеством запросов, или устроить с его помощью XSRF-атаку.
Подмена кодировки в заголовке страницы
Современные браузеры пытаются определить кодировку страницы на ходу и интерпретируют html в соответствии с этой кодировкой. В случае, если тег <title> расположен до тега <meta> и заполняется пользовательскими данными, хакер может вставить злонамеренный html-код в кодировке UTF-7, обойдя таким образом фильтрацию таких символов, как < и ".
Для защиты от данной уязвимости следует явно указывать кодировку страницы до каких-либо пользовательских полей. HTML 5 прямо запрещает поддержку браузерами кодировки UTF-7 как потенциально опасной[24].
Социальная инженерия
В другом языковом разделе есть более полная статья Self-XSS (англ.).
Пользуясь социальной инженерией, злоумышленники добиваются того, что пользователь сам запускает вредоносный скрипт в браузере (на стороне клиента). Разработчики браузеров и веб-сайты принимают усилия по предотвращению атак такого типа[25].
Если сайт и допускает внедрение SQL-кода, и выводит содержимое БД без всякого экранирования (то ли по незнанию, то ли в БД хранится готовый HTML-код[26], то ли автор точно знает, что «плохих» символов в БД нет), можно провести необычную атаку.
Внедрением SQL-кода записываем в БД «отравленную» страницу. Если кто-то получит доступ к этой строке БД, ему в браузер попадёт вредоносный скрипт. Бывают атаки и без хранения HTML в БД — СУБД вместо хранящегося в БД поля вернёт тот скрипт, который записан в тексте запроса.
В данном примере показано поле ввода, у которого установлен обработчик события появления фокуса, выполняющий собственно код атаки, а также у данного поля ввода активировано свойство автоматической установки фокуса. Таким образом автоматически устанавливается фокус, что вызывает обработчик установки фокуса, содержащий код атаки. Атака является активной и выполняется автоматически, не требуя от пользователя никакой активности.
Пассивные (автономные)
Пассивная XSS-атака срабатывает при выполнении пользователем определённого действия (клик или наведение указателя мыши и т. п.).
Пример показывает гиперссылку, особым образом привлекающую внимание пользователя, и/или занимающее значительное место, повышающее вероятность наведения указателя мыши, в данном случае крупным шрифтом. У гиперссылки установлен обработчик события наведения указателя мыши, содержащий код атаки. Атака является пассивной, так как бездействует, а код атаки не выполняется в ожидании наведения указателя мыши на ссылку пользователем.
Кодирование управляющих HTML-символов, JavaScript, CSS и URL перед отображением в браузере. Для фильтрации входных параметров можно использовать следующие функции: filter_sanitize_encoded (для кодирования URL)[28], htmlentities (для фильтрации HTML)[29].
Кодирование входных данных. Например с помощью библиотек OWASP Encoding Project[30], HTML Purifier, htmLawed, Anti-XSS Class.
Регулярный ручной и автоматизированный анализ безопасности кода и тестирование на проникновение. С использованием таких инструментов, как Nessus, Nikto Web Scanner и OWASP Zed Attack Proxy.
Указание кодировки на каждой web-странице (например, ISO-8859-1 или UTF-8) до каких-либо пользовательских полей[31].
Обеспечение безопасности cookies, которая может быть реализована путём ограничения домена и пути для принимаемых cookies, установки параметра HttpOnly[32], использованием SSL[33].
Использование заголовка Content Security Policy, позволяющего задавать список, в который заносятся желательные источники, с которых можно подгружать различные данные, например, JS, CSS, изображения и пр.
Защита на стороне клиента
Регулярное обновление браузера до новой версии[18].
Установка расширений для браузера, которые будут проверять поля форм, URL, JavaScript и POST-запросы, и, если встречаются скрипты, применять XSS-фильтры для предотвращения их запуска. Примеры подобных расширений: NoScript для FireFox, NotScripts для Chrome и Opera.
Seth Fogie, Jeremiah Grossman, Robert Hansen, Anton Rager, Petko D. Petkov. XSS атаки: эксплуатация и защита = XSS Attacks: Cross Site Scripting Exploits and Defense. — Syngress, 2007. — 464 p. — ISBN 1597491543.
Paco Hope, Ben Walther. Web Security Testing Cookbook. — O'Reilly Media, 2008. — 314 p. — ISBN 978-0-596-51483-9.
Untuk kegunaan lain, lihat Respirator. Sebuah masker bedah Sampah masker bedah yang dibuang sembarangan Tenaga medis profesional memakai masker bedah selama operasi Masker medis, juga dikenal sebagai masker bedah atau sekadar masker wajah atau sungkup muka[1][2] adalah masker yang dimaksudkan untuk dipakai oleh para tenaga kesehatan selama tindakan pembedahan dan selama perawatan untuk menahan bakteri yang terkandung dalam percikan cairan (droplet) dan aerosol dari hidung dan ...
Stencil que denuncia la manipulación televisiva. La manipulación de los medios de comunicación consiste en una serie de técnicas relacionadas entre sí con las que miembros de un determinado grupo crean una imagen o una idea que favorece sus intereses particulares.[1] Entre estas tácticas destacan las falacias lógicas y la propaganda, que a menudo implican la supresión de información o de otros puntos de vista a través de su distorsión, induciendo a otras personas o grupos de...
Shoot to ThrillLagu oleh AC/DCdari album Back in BlackDirilis25 July 1980Direkam1980GenreHard rockDurasi5:17LabelAtlanticPencipta Angus Young Malcolm Young Brian Johnson ProduserRobert John Mutt Lange Shoot to Thrill merupakan salah satu lagu dari band Rock and Roll asal Australia, AC/DC. Lagu ini merupakan lagu kedua dalam album Back in Black yang dirilis pada 25 Juni 1980.[1] Lagu ini juga merupakan lagu kedua dalam album AC/DC Live[2] dan AC/DC Live (1992, Special Collector...
لمعانٍ أخرى، طالع فورت (توضيح). فورت علم شعار الاسم الرسمي (بالألمانية: Fürth) الإحداثيات 49°28′42″N 10°59′25″E / 49.478333333333°N 10.990277777778°E / 49.478333333333; 10.990277777778 [1] تقسيم إداري البلد ألمانيا (3 أكتوبر 1990–) ألمانيا الغربية (23 مايو 1949–2 أكتوبر ...
DongxiangدْوݣسِيْاݣSeorang siswa Dongxiang di sekolah.Jumlah populasi621,500Daerah dengan populasi signifikan621,500 (sensus 2010) di GansuBahasaSantaAgamaIslam SunniKelompok etnik terkaitBonan, Hui Bagian dari serial tentang: Islam di Tiongkok Sejarah Islam di Tiongkok Menurut dinasti Tang Song Yuan Ming Qing Pemberontakan Pemberontakan Panthay (1856–1873) Pemberontakan Dungan pertama (1862–1877) Pemberontakan Dungan kedua (1895–1896) Pemberontakan Afaqi Khoja Tiongkok pascad...
2012 single by Monica and BrandyIt All Belongs to MeSingle by Monica and Brandyfrom the album New Life ReleasedFebruary 13, 2012GenreR&BpopLength4:04LabelRCASongwriter(s)Rico LoveEarl HoodEric Goudy IIProducer(s)Rico LoveEarl & EMonica singles chronology Until It's Gone(2011) It All Belongs to Me(2012) Without You(2012) Brandy singles chronology Talk to Me(2010) It All Belongs to Me(2012) Put It Down(2012) It All Belongs to Me is a duet by American recording artists Monica and...
Centre for research European Bioinformatics Institute (EBI)AbbreviationEMBL-EBIFormation1992[1]LocationWellcome Genome Campus, Hinxton, Cambridgeshire, UKCoordinates52.079889, 0.186356DirectorEwan BirneyDirectorRolf ApweilerParent organizationEuropean Molecular Biology LaboratoryStaff 570[2]Websitewww.ebi.ac.uk The European Bioinformatics Institute (EMBL-EBI) is an intergovernmental organization (IGO) which, as part of the European Molecular Biology Laboratory (EMBL) family, f...
Сельское поселение России (МО 2-го уровня)Новотитаровское сельское поселение Флаг[d] Герб 45°14′09″ с. ш. 38°58′16″ в. д.HGЯO Страна Россия Субъект РФ Краснодарский край Район Динской Включает 4 населённых пункта Адм. центр Новотитаровская Глава сельского пос�...
Chinese people in Ireland愛爾蘭華人Sínigh in ÉirinnChinese New Year celebration in Dublin, 2008Total population19,447 (2016)Regions with significant populationsDublinLanguagesMandarin, Cantonese, English, IrishReligionIrreligion, Buddhism, Atheism, ChristianityRelated ethnic groupsOverseas Chinese, British Chinese Hazel Chu as Lord Mayor of Dublin in 2021 Recitation of Chinese poetry at Dublin Connolly railway station to celebrate Chinese New Year. Chinese people in Ireland refer to pe...
American football player (born 1998) American football player Terrell LewisLewis with the Los Angeles Rams in 2020No. 46 – Philadelphia EaglesPosition:LinebackerPersonal informationBorn: (1998-08-25) August 25, 1998 (age 25)Washington, D.C., U.S.Height:6 ft 5 in (1.96 m)Weight:262 lb (119 kg)Career informationHigh school:St. John's College (Washington, D.C.)College:Alabama (2016–2019)NFL draft:2020 / Round: 3 / Pick: 84Career history Los A...
Catalysis is a software design method for the specification and design of component-based computer systems originally developed by Desmond D’Souza and Alan Cameron Wills in their 1999 book.[1] Catalysis focuses on how to make precise abstractions, and emphasizes the formal specification of use cases using pre- and postconditions and ‘guarantees’ clauses. It also places stress on the specification of collaboration protocols so that kits of components can interact in a coherent �...
Sporting event delegationMoldova at the2022 World Athletics ChampionshipsFlag of MoldovaWA codeMDAin Eugene, United States15 July 2022 (2022-07-15) – 24 July 2022 (2022-07-24)Competitors5 (2 men and 3 women)Medals Gold 0 Silver 0 Bronze 0 Total 0 World Athletics Championships appearances1993199519971999200120032005200720092011201320152017201920222023← 2019 2023 → Moldova competed at the 2022 World Athletics Championships in Eugene, U...
Indonesiadalam tahun2002 ← 2000 2001 2002 2003 2004 → Dekade :2000-anAbad :ke-21Milenium :ke-3Lihat juga Sejarah Indonesia Garis waktu sejarah Indonesia Indonesia menurut tahun Bagian dari seri mengenai Sejarah Indonesia Prasejarah Manusia Jawa 1.000.000 BP Manusia Flores 94.000–12.000 BP Bencana alam Toba 75.000 BP Kebudayaan Buni 400 SM Kerajaan Hindu-Buddha Kerajaan Kutai 400–1635 Kerajaan Tarumanagara 450–900 Kerajaan Kalingga 594–782 Kerajaa...
Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Desember 2022. Luigi AlmiranteLahir(1886-09-30)30 September 1886Tunis, TunisiaMeninggal6 Mei 1963(1963-05-06) (umur 76)Roma, ItaliaPekerjaanPemeranTahun aktif1921–1955 Luigi Almirante (30 September 1884 – 6 Mei 1963) adalah seorang pemera...
Thomas Cranmerarcivescovo della Chiesa anglicanaRitratto di Thomas Cranmer, Londra, National Portrait Gallery Incarichi ricopertiArcivescovo di Canterbury (1533-1555) Nato2 luglio 1489 ad Aslockton Ordinato presbitero1520 Consacrato arcivescovo30 marzo 1533 Deceduto21 marzo 1556 (66 anni) a Oxford Firma Manuale Thomas Cranmer (Aslockton, 2 luglio 1489 – Oxford, 21 marzo 1556) è stato un arcivescovo anglicano inglese, arcivescovo di Canterbury sotto i regni dei sovra...
Voce principale: Nazionale di pallacanestro della Serbia. SerbiaUniformi di gara Casa Trasferta Sport Pallacanestro FederazioneFederazione cestistica della Serbia ConfederazioneFIBA (dal ) Zona FIBAFIBA Europe Ranking FIBAº Le selezioni giovanili della nazionale di pallacanestro della Serbia, sono state gestite dalla Federazione cestistica della Serbia e partecipavano ai tornei cestistici internazionali per squadre nazionali, limitatamente a specifiche classi d'età. Indice 1 Universitaria ...