Pull to refresh
  • by relevance
  • by date
  • by rating

Кроссдоменный AJAX

Website development *
На вопрос, как сделать AJAX запрос к другому домену, я всегда отвечал, что никак, и предлагал в качестве альтернативы jsonp, прокси, флеш, фреймы. Но, оказывается, большинство современных браузеров (IE8+, FF3.5+, Chrome 6+ и Safari 4+) вполне поддерживает кроссдоменный XMLHTTPRequest.

Работает это на удивление просто
Total votes 97: ↑90 and ↓7 +83
Views 110K
Comments 22

Новые возможности XMLHttpRequest2

JavaScript *
Translation
Одним из незамеченных героев вселенной HTML5 является XMLHttpRequest 2. Строго говоря XHR2 не является частью HTML5 и не является самостоятельным объектом. XHR2 это тот же XMLHttpRequest, но с некоторыми изменениями. XHR2 является неотъемлемой частью сложных веб-приложений, поэтому ему стоит уделить большее внимание.

Наш старый друг XMLHttpRequest сильно изменился, но не многие знают о его изменениях. XMLHttpRequest Level 2 включает в себя новые возможности, которые положат конец нашим безумным хакам и пляскам с бубном вокруг XMLHttpRequest: кросс-доменные запросы, процесс загрузки файлов, загрузка и отправка двоичных данных. Эти возможности позволяют AJAX уверенно работать без каких-либо хаков с новейшими технологиями HTML5: File System API, Web Audio API, и WebGL.

В этой статье будут освещены новые возможности XMLHttpRequest, особенно те, которые можно использовать при работе с файлами.
Читать дальше →
Total votes 133: ↑129 and ↓4 +125
Views 77K
Comments 32

Google и Mozilla закрыли уязвимости, касающиеся WebGL

Browsers
Как уже известно, некоторое время назад компания Microsoft назвала технологию WebGL небезопасной, поэтому корпорация отказалась работать в направлении внедрения технологии в свои продукты. Google и Mozilla, основные разработчики из консорциума Khronos, для успокоения разработчиков заявили, что не так страшен чёрт, как его малюют, и вообще, если и есть проблемы, то их быстро пофиксят. Ребята из Mozilla вообще сделали ход конём, ударив по Silverlight, обнаружив там схожую уязвимость. Microsoft признала баг, позволяющий вызвать отказ в обслуживании, и начала работу по ликвидации дырки.
Читать дальше →
Total votes 52: ↑43 and ↓9 +34
Views 3.2K
Comments 33

Кроссбраузерный запуск «злобного» кода на клиенте

Контур corporate blog
Пост будет интересен веб-разработчикам, заинтересованным в запуске небезопасного кода на клиенте (из браузера). Под «злобным» мы понимаем код, который мы не можем выполнить в чистом JavaScript’е (в нашем случае — подписание куска данных определенным сертификатом).

Моя команда занимается разработкой интернет-сервиса для расчета зарплаты. Перед нами встала задача подписать отправляемую отчетность закрытым ключом клиента, следовательно, нужно выполнить на машине клиента опасный с точки зрения браузера код. При этом очень хотелось не ограничивать клиента в выборе браузера для пользования нашим сервисом.

Узнать о том, как мы решали эту не самую тривиальную задачу.
Total votes 40: ↑39 and ↓1 +38
Views 14K
Comments 50

Субтитры в HTML5 Video, CORS, FileAPI Writer и другие новинки в новом превью Internet Explorer 10

Microsoft corporate blog
Main

Вчера была представлена новая превью-версия Internet Explorer 10, в которой разработчиками было добавлено значительное количество новых возможностей. Среди них:
  • поддержка субтитров в HTML5 Video (сразу нескольких языков);
  • добавлена поддержка CORS (cross origin resource sharing) для безопасных кроссдоменных запросов;
  • добавлена поддержка File API: Writer для работы в браузере с большими бинарными объектами (файлами, блобами);
  • добавлена поддержка JavaScript typed arrays для эффективного хранения и манипулирования типизированными данными;
  • добавлена поддержка свойств CSS user select для возможности задать на странице блоки, которые доступны для выделения пользователем;
  • улучшения в CSS3 Positioned Floats, Flexbox, Grid, поддержка Web Worker Thread Pooling, улучшенная поддержка XHR2.
Кроме того, был обновлен Developer Center, создано несколько новых функциональных демо и добавлено свыше сотни новых тестов качества реализации веб-стандартов. Обо всем этом рассказывается ниже.

Как всегда загрузить новую превью-версию Internet Explorer вы можете на сайте http://ie.microsoft.com/testdrive/ (новое превью может быть установлено на Windows 8 Developer Preview). Там же вы найдете демонстрации, тесты, техническую информацию и полезные ссылки. Русскоязычным разработчикам будет полезен специальный раздел на MSDN. Кроме того, доступно локализованное руководство по всем новым веб-стандартам имплементированным в Internet Explorer 10 (ожидает обновления).

Поддержка субтитров в HTML5 Video


Итак, если вы хотели использовать HTML5 Video вместе с субтитрами, то в IE10 PP4 вы можете это сделать с помощью специального определения ссылки или даже ссылок на файлы титров:

Читать дальше →
Total votes 32: ↑25 and ↓7 +18
Views 7.4K
Comments 28

На Amazon S3 появился редирект статических веб-страниц

Amazon Web Services *
Amazon продолжает развивать функционал статического веб-хостинга. По данным компании, сейчас это одна из самых быстро растущих частей Amazon Web Services. 31 августа появилась поддержка Cross-origin resource sharing (CORS), а вчера, 4 октября, стало возможно настроить редирект статических веб-страниц. Теперь при изменении структуры сайта ссылки и закладки на старые URL будут работать, если в метаданных страницы включить редирект и указать новый URL.


Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Views 3.3K
Comments 1

Long Polling от А до Я своими руками

Cackle corporate blog Website development *JavaScript *
Как реализовать long polling с помощью Nginx и Javascript в сети достаточно много материала. Но полного руководства я ещё не встречал. То возникают проблемы с компиляцией модуля под Nginx, то в браузере вертится иконка загрузки при long poll запросах. Под катом, полный материал как же все таки это сделать правильно.
Читать дальше →
Total votes 73: ↑69 and ↓4 +65
Views 52K
Comments 34

Windows Azure Blob-storage: поддержка CORS

JavaScript *.NET *Microsoft Azure
Tutorial
Недавно вышло много обновлений Windows Azure. Среди них долгожданная поддержка Cross-Origin Resource Sharing для хранилищ. Я плотно использую в работе blob-storage (файловое хранилище) и в этом посте опишу как сделать загрузку файлов простой и приятной.
хочу стать счастливым
Total votes 22: ↑18 and ↓4 +14
Views 5.6K
Comments 3

WCF + Cross Domain Ajax Calls (CORS) + Авторизация

Ajax *.NET *
Sandbox
Добрый день!
Хотелось бы продемонстрировать один из возможных подходов к решению проблемы работы с WCF сервисами с различных доменов. Найденная мной информация по данной теме была или неполной, или содержала избыточное количество информации, затрудняющей понимание. Хочу рассказать о нескольких способах взаимодействия WCF и AJAX POST запросов, включающих в себя информацию о Cookies и авторизации.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 29K
Comments 3

(Не)безопасный frontend

Digital Security corporate blog Information Security *

Интро


Не так давно я выступал на конференции FrontendConf 2015 (РИТ++) с темой данной статьи. И при подготовке доклада начал искать информацию, а кто вообще выступал на данную тему и что есть в Сети на данный момент.

Оказалось, что информации совсем немного, более-менее можно было бы отметить доклад mikewest.org/2013/09/frontend-security-frontendconf-2013 от Mike West из компании Google, но какой-то «непентестерский» взгляд и уж совсем мало материала. И www.slideshare.net/eoftedal/web-application-security-in-front-end где тема раскрыта более детально, но выступление 2011 года. А за 4 года технологии и атаки на месте не стояли.

Долго и сложно выбирая темы, что же все-таки рассказать разработчикам фронтендов про безопасность, при этом минимум касаясь бекэнда (местами все-таки это неделимо), получился доклад, а здесь — его текстовый пересказ.

О чем вообще разговор?


А действительно, о чем тут вообще можно разговаривать? Говоря про взломы и безопасность невольно приходят в голову тезисы — слили базу, получили доступ к выполнению команд ОС на сервере, прочитали чужую переписку. Но это все — server side код. А что ж может «нагородить» фронтэндер? Главная опасность, конечно же, в обходе атакующим SOP — Same Origin Policy, главной политики безопасности браузеров, которая регулирует работу в разных Origin. Но не только, давайте разбираться.

Читать дальше →
Total votes 64: ↑63 and ↓1 +62
Views 58K
Comments 4

Эмуляция CORS на стороне клиента: кроссбраузерное решение некоторых пользовательских задач без расширений

Firefox JavaScript *Internet Explorer Google Chrome Browsers
Tutorial

I. В чём проблема



Расширения для браузеров — мощный инструмент продвинутого веб-сёрфинга, самая доступная, развитая и распространённая часть целого ряда инструментов. Однако расширения имеют и слабые стороны: каждый браузер требует знания и применения своих правил и форматов, а это дополнительная сложность для создателя. Расширения не кроссбраузерны, что сразу ограничивает их адресат. Есть попытки обобщить создание расширений, но они могут добавлять уже свою дополнительную прослойку форматов и правил.

Когда расширение улучшает специфические стороны браузерного интерфейса, без него не обойтись. Но некоторые задачи универсальны, не связаны с частными средствами браузера и, тем не менее, без расширения их тоже не выполнить. Одна из таких задач — кроссдоменные XMLHttpRequest запросы, нарушающие политику одного источника.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 21K
Comments 5

Security Week 27: ExPetr = BlackEnergy, более 90% сайтов небезопасны, в Linux закрыли RCE-уязвимость

«Лаборатория Касперского» corporate blog Information Security *
Зловещий ExPetr, поставивший на колени несколько весьма солидных учреждений, продолжает преподносить сюрпризы. Наши аналитики из команды GReAT обнаружили его родство со стирателем, атаковавшим пару лет назад украинские электростанции в рамках кампании BlackEnergy.

Конечно, откровенного использования кусков кода в ExPetr не наблюдается, авторы постарались не спалиться. Но программистский почерк так просто не замаскируешь.

Сначала аналитики сравнили списки расширений шифруемых файлов. На первый взгляд не очень похоже – BlackEnergy работал со значительно большим разнообразием файлов, – но если приглядеться, сходство все-таки есть. Типов расширений существует множество, и из них можно собрать бесконечное число разных списков, а тут налицо явные пересечения по составу и форматированию.
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Views 7.8K
Comments 7

Автоматизация загрузки логов из Kibana в Redmine

ИНФОРИОН corporate blog Abnormal programming *JavaScript *Delirium coding
Типичный юзкейс для Kibana — смотрим логи, видим ошибки, создаем тикеты по ним. Логов у нас довольно много, места для их хранения мало. Поэтому просто вставить ссылку на документ из Elasticsearch/Kibana недостаточно, особенно для низкоприоритетных задач: пока доберемся до нее, индекс с логом может быть уже удален. Соответственно, приходится документ сохранять в файл и прикреплять к тикету.

Если один раз это делать, то это еще куда ни шло, но создавать уже десять тикетов подряд будет тупо лень, поэтому я решил это «быстренько» (ха-ха) автоматизировать.


Под катом: статья для пятницы, экспериментальная фича javascript, пара грязных хаков, небольшая регулярка с галочками, reverse proxy, проигрыш безопасности удобству, костыли и очевидная картинка из xkcd.
Поехали!
Total votes 7: ↑7 and ↓0 +7
Views 3K
Comments 6

Нужные HTTP-заголовки

Information Security *Server optimization *
Translation
Наши клиенты в Fastly любят манипулировать заголовками HTTP. Подбор правильной комбинации заголовков — одна из лучших вещей, какую вы можете сделать для безопасности своего сайта и значительного вклада в его производительность.

Большинство разработчиков знают о важных и нужных HTTP-заголовках. Самые известные — Content-Type и Content-Length, это почти универсальные хедеры. Но в последнее время для повышения безопасности начали использоваться заголовки вроде Content-Security-Policy и Strict-Transport-Security, а для повышения производительности — Link rel=preload. Несмотря на широкую поддержку в браузерах, лишь немногие их используют.

В предыдущей статье мы рассмотрели ненужные заголовки. Сейчас разберёмся, какие заголовки действительно следует настроить для своего сайта.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Views 34K
Comments 5

Безопасность клиентских приложений: практические советы для Front-end разработчика

Information Security *JavaScript *

Как вы знаете, большая часть атак BlackHat-хакеров направлена на компрометацию серверных данных web-приложений и сервисов. При этом клиентскую часть сегодня атакуют не реже. Согласно сухому определению, любая атака — это комплекс мер со стороны хакера, направленных на сеть и передачу данных, на данные и их подмену, инфраструктуру и технические особенности реализации web-приложения. Поэтому международные компании требуют от инженеров-разработчиков более ответственного и тщательного подхода к безопасности клиентских приложений.


На примере моего проекта я расскажу о том, как сегодня атакуют клиентские приложения и как вам избежать этих угроз.

Читать
Total votes 15: ↑13 and ↓2 +11
Views 15K
Comments 2

RealWorld: aiohttp, Tortoise ORM

Website development *Python *
Tutorial

На Real World отсутствует пример для aiohttp, и я решил его сделать. Опытным разработчикам, похоже, некогда этим заниматься, а начинающим в aiohttp непонятно как делать правильно. Я начал его делать с помощью Tortoise ORM. Пока начал делать аутентификацию.


Хочется сделать этот проект правильно, поэтому под катом очень много вопросов опытным aiohttp разработчкам.

Читать дальше →
Total votes 15: ↑11 and ↓4 +7
Views 6.2K
Comments 2

Cross-Origin Read Blocking (CORB) в расширениях для Chrome

Browser extensions
image

Если вы когда-то разработали расширение для Chrome, то может оказаться, что оно перестало работать.

Причина в том, что начиная аж с прошлого года, в браузере Chrome блокируются Cross-Origin запросы из content-скриптов. Это означает, что если ваше расширение обращается к некоторому строннему API напрямую из content-скрипта, такой запрос будет заблокирован благодаря Cross-Origin Read Blocking (CORB)
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 8.3K
Comments 1

Браузер на страже API-запросов: строим безопасное общение фронтенда с бэкендом

FirstVDS corporate blog Information Security *Programming *


Команде разработчиков, создающей одностраничное приложение (SPA), рано или поздно придётся столкнуться с ограничениями браузерной безопасности. С одной стороны, нужно сделать так, чтобы фронтенд-сторона могла беспрепятственно общаться с бэкенд API-сервером, а с другой — защитить такое общение от злоумышленников. Сложности начинаются, когда фронтенд и бэкенд находятся на разных доменах, так как на такое взаимодействие браузер накладывает более строгие правила.


В клиентском HTML-JS приложении браузер выполняет важную роль «инспектора» внешних запросов и содержит в арсенале мощные инструменты. Наша задача — установить правила, по которым он будет применять эти инструменты к нашему приложению.


Я — разработчик в хостинг-провайдере FirstVDS. При создании SPA для одного из наших проектов я искал решения и применял их на практике, чтобы подружить фронтенд с API и обезопасить их общение. В этой статье я собрал свои мысли и опыт воедино, чтобы поделиться с вами.

Приступим
Total votes 21: ↑21 and ↓0 +21
Views 12K
Comments 19

Безопасность REST API от А до ПИ

Information Security *Website development *System Analysis and Design *IT Standards *API *
🔥 Technotext 2020

Введение


Умение реализовать грамотное REST API — полезный навык в наше время, т.к. все больше сервисов предоставляют свои возможности с помощью API. Но разработка REST API не ограничивается реализацией HTTP запросов в определенном стиле и формированием ответов в соответствии со спецификацией. Задача обеспечения безопасности REST API не так очевидна, как, например, обеспечение безопасности баз данных, но ее необходимость не менее важна.
В настоящее время многие онлайн системы с помощью API передают приватные данные пользователей, такие как медицинские или финансовые. Текущая же ситуация с безопасностью в веб-приложениях весьма печальна: по данным Comnews порядка 70% содержат кри­тичес­кие уязвимости. Поэтому всем, кто участвует в проектировании, реализации и тестировании онлайн систем, важно иметь общую картину по существующим угрозам и способам обеспечения безопасности как всей системы, так и используемого REST API.

В статье я попытался обобщить информацию о существующих уязвимостях REST API, чтобы у читателей сложилась общая картина. На схемах представлена современная архитектура клиент-сервер и обобщенный REST API запрос с потенциальными угрозами безопасности. Далее я подробнее расскажу об этих угрозах, и как технически реализовать защиту от них.

image
Читать дальше →
Total votes 52: ↑52 and ↓0 +52
Views 56K
Comments 18

Политика общего происхождения и CORS: визуальное руководство

Website development *JavaScript *Programming *
Translation


Доброго времени суток, друзья!

Представляю вашему вниманию перевод статьи «CS Visualized: CORS» автора Lydia Hallie.

Каждому разработчику приходилось сталкиваться с ошибкой Access to fetched has been blocked by CORS policy. Существует несколько способов быстрого решения данной проблемы. Однако, давайте не будем спешить и подробно рассмотрим, что из себя представляет политика CORS.

У нас часто возникает необходимость отобразить данные, находящиеся в другом месте. Прежде чем мы сможем это сделать, браузер должен отправить запрос на сервер, чтобы получить эти данные.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Views 9.4K
Comments 4
1