Рубрика «http» - 13

Никаких самоподписанных сертификатов уже со следующего лета

В 2015 году Mozilla и EFF начнут выдавать бесплатные SSL-сертификаты - 1Вчера фонд EFF объявил о запуске совместного с Mozilla, Cisco, Akamai, IdenTrust и Мичиганским университетом проекта Let's Encrypt. Призыв «давайте шифровать» подкреплён реальными действиями: новый центр сертификации будет выдавать бесплатные сертификаты всем желающим.

Протокол HTTP обладает рядом недостатков. Он не даёт никакой защиты от прослушки государственными структурами, интернет-провайдерами, работодателями и преступниками, что позволяет следить за пользователем и воровать его личные данные, включая пароли. Посредством атаки MitM можно легко вырезать отдельные части страниц в целях цензуры или вводить в код вредоносные объекты.

HTTPS использует шифрование передаваемых данных, это тот же HTTP, но по шифрованному посредством SSL или TLS каналу. Он далеко не идеален: с момента последней публикации крупной уязвимости SSL (Poodle) прошло всего 2 месяца. Но даже это гораздо лучше, чем ничего.

Если мы хотим значительно улучшить безопасность Интернета, то всем нам следует использовать шифрование соединения с сайтами. Однако на пути встаёт сложность, запутанность и монополизм рэкета в пользу центров сертификации.
Читать полностью »

Не так давно Facebook объявил про открытие доступа к своему проекту Proxygen. Этот проект включает базовый код на C++ и абстракции HTTP, используемые в Facebook.
Компания открыла лишь малую часть своего кода за последние месяцы, большинство из него ориентировано на мобильных разработчиков. Данный анонс довольно интересен по многим причинам так как будет полезен широкому кругу разработчиков.

Facebook открывает доступ к проекту Proxygen - 1Читать полностью »

Содержание

Браузер – крайне враждебная программная среда

Дуглас Крокфорд, «Язык программирования JavaScript» (видеолекция)

Следующая часть книги расскажет о веб-браузерах. Без них не было бы JavaScript. А если бы и был, никто бы не обратил на него внимания.

Технологии веба с самого начала были децентрализованными – не только технически, но и с точки зрения их эволюции. Различные разработчики браузеров добавляли новую функциональность «по случаю», непродуманно, и часто эта функциональность обретала поддержку в других браузерах и становилась стандартом.

Это и благословление и проклятие. С одной стороны, здорово не иметь контролирующего центра, чтобы технология развивалась различными сторонами, иногда сотрудничающими, иногда конкурирующими. С другой – бессистемное развитие языка привело к тому, что результат не является ярким примером внутренней согласованности. Некоторые части привносят путаницу и беспорядок.
Читать полностью »

Proxygen — HTTP-фреймворк для С++ от Facebook - 1Proxygen — это коллекция библиотек для использования протокола HTTP на С++, включающая в числе прочего очень простой в использовании HTTP-сервер. Кроме классического HTTP/1.1 фреймворк Proxygen поддерживает SPDY/3 и SPDY/3.1. Вскоре также будет полностью поддерживаться HTTP/2.

Proxygen не задумывался как замена Apache или nginx — эти проекты сфокусированы на создании достаточно гибких и конфигурируемых веб-серверов, позволяющих благодаря тонкой настройке добиться максимальной производительности. Задачей Proxygen является работать достаточно хорошо на дефолтных настройках, давая программисту простые в использовании веб-сервер и веб-клиент, легко интегрирующиеся в уже существующие проекты. Мы хотим помочь людям строить веб-сервисы на С++ с меньшими затратами и мы верим, что Proxygen — отличный фреймворк для этого. Вы можете почитать документацию по нему и подключиться к разработке на Github.

Читать полностью »

Перевыпускаем сертификат с SHA 2 — если Webnames не идет к Магомету…Как было объявлено 5 сентября 2014 года, разработчики браузера Chromium уже не очень жалуют алгоритм хеширования SHA-1. Сам вид адресной строки браузера будет давать понять посетителям https-сайтов, «закрытых» такими сертификатами, что с сайтом что-то «не те». Вид строки будет меняться со временем, давая время для более-менее плавного перехода, а в конце сертификаты с SHA-1 перестанут считаться вообще сколько-нибудь безопасными:

Перевыпускаем сертификат с SHA 2 — если Webnames не идет к Магомету…
Читать полностью »

mitmproxy

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

Инструменты, традиционно используемые для прослушивания трафика (tshark, о котором мы уже писали, а также ngrep и tcpdump) для этой цели подходят плохо: функциональность для работы с протоколом HTTP у них ограничена.

Для анализа HTTP-трафика существует более специализированное, простое и эффективное решение. Знакомьтесь: mitmproxy. На русском языке подробных публикаций о нем почти нет. В этой статье мы поделимся своим опытом работы с mitmproxy и надеемся, что и вам он окажется полезным.
Читать полностью »

При разработке приложений я заметил, что каждый раз, когда мне приходилось сталкиваться с решением похожих задач (реализовывать работу с http, json, multithreading и т.п.), приходилось делать одну и туже роботу, причем на это уходило много времени. Поначалу это было не критично, но в больших проектах занимало слишком много времени. Чтобы сэкономить свое и ваше время, решил написать универсальное решение для этих задач, которым и хочу поделиться с сообществом.
Читать полностью »

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

В том посте я расскажу как использовать возможности инфраструктуры ASP.NET для управления кешированием.

Читать полностью »

К сожалению, в стандартной библиотеке языка С++ нет никаких средств для работы с протоколом HTTP. Возможно, в будущем появятся, но на данный момент каждый раз при необходимости дёрнуть какой-нибудь REST-сервис, пропарсить веб-страничку, написать простенького бота или краулера приходится задаваться вопросами «А какую же библиотеку взять, так чтобы побыстрее и попроще?». Иногда проект уже использует какой-то фреймворк (а иногда даже несколько) и тогда приходится вспоминать «А как же сделать HTTP-запрос имеющимися средствами?». Чтобы не путаться я решил написать для себя шпаргалку с примерами HTTP-запросов на С++ с применением разных библиотек. А самое удобное место для хранения подобных шпаргалок — Хабр: и сам не потеряешь, и другим может пригодиться.

Будут рассмотрены:

  • WinInet
  • Casablanca
  • Qt
  • POCO
  • wxWidgets
  • Boost.Asio
  • libcurl
  • neon
  • .NET (С++/CLI)
  • IXMLHTTPRequest
  • HappyHttp
  • cpp-netlib

Читать полностью »

Вот так неожиданно, через 15 лет после начальной публикации, обновилась спецификация/HTTP 1.1
Обновлений много, я бы даже сказал, дофига. Добавили много проясняющего текста, разбили спецификацию на 6 RFC (раньше было 2), добавили новый статус 308, стандартизировали X-Forwarded-For (теперь он просто Forward), и еще много всего.

Неполный спискок изменений:

  • Новый статус 308 — Permanent Redirect, но с отправкой этих же самых данных. Т.е. запрос не меняется на GET, как раньше.
  • Новый заголовок Forward, который призван заменить X-Forwarded-For и X-Forwarded-Proto
  • Убрано ограничение на 2 подключения к серверу
  • Убрана поддержка HTTP 0.9
  • Убрана кодировка ISO-8859-1 по умолчанию
  • Убран заголовок Content-MD5
  • Запрет использования Content-Range на POST-запросах
  • Добавлено кеширование кодов 204, 404, 405, 414 и 501
  • Изменены коды 301 и 303 таким образом, чтобы позволить перенаправлять метод с POST на GET, чтобы сохранить совместимость с текущими реализациями. Управляется через user-agent.
  • Добавлены разграничения между запретом отправки referer и случаем, когда referer нет. Теперь следует отправлять Referer: about:blank, если referer-а не было.
  • Location теперь может перенаправлять на ссылку с хештегом.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js