#13 Bug Bounty. Как работает интернет. Часть 1. Модель клиент-сервер.
Здравствуйте, дорогие друзья.
Прежде чем приступить к поиску ошибок, давайте потратим некоторое время на то, чтобы понять, как работает сеть. Поиск веб-уязвимостей заключается в использовании слабых мест этой технологии, поэтому все хорошие хакеры должны иметь четкое представление о них. Если Вы уже знакомы с этими процессами, можно перейти к контролю безопасности в Интернете. Следующий вопрос послужит хорошей отправной точкой: что происходит, когда Вы вводите www.google.com в браузере? Другими словами, как Ваш браузер узнает, как перейти с доменного имени, например google.com, на искомую веб-страницу? Давайте выясним.
Модель клиент-сервер
Интернет состоит из двух типов устройств: клиентов и серверов. Клиенты запрашивают ресурсы или услуги, а серверы предоставляют эти ресурсы и услуги. Когда Вы посещаете веб-сайт с помощью браузера, он действует как клиент и запрашивает веб-страницу с веб-сервера. Затем веб-сервер отправит вашему браузеру веб-страницу (рисунок ниже):
Веб-страница — это не что иное, как набор ресурсов или файлов, отправленных веб-сервером. Например, как минимум, сервер отправит Вашему браузеру текстовый файл, написанный на языке гипертекстовой разметки (HTML), языке, который сообщает Вашему браузеру, что отображать. Большинство веб-страниц также включают файлы каскадных таблиц стилей (CSS), чтобы сделать их красивыми. Иногда веб-страницы также содержат файлы JavaScript (JS), которые позволяют сайтам анимировать веб-страницу и реагировать на ввод пользователя без использования сервера.
Например, JavaScript может изменять размер изображений, когда пользователи прокручивают страницу, и проверять вводимые пользователем данные на стороне клиента перед отправкой их на сервер. Наконец, Ваш браузер может получать встроенные ресурсы, такие как изображения и видео. Ваш браузер объединит эти ресурсы для отображения веб-страницы, которую Вы видите.
Серверы не просто возвращают пользователю веб-страницы. Веб-API позволяют приложениям запрашивать данные из других систем. Это позволяет приложениям взаимодействовать друг с другом и контролировать обмен данными и ресурсами. Например, API-интерфейсы Twitter позволяют другим веб-сайтам отправлять запросы на серверы Twitter для получения таких данных, как списки общедоступных твитов и их авторов. API обеспечивают множество функций Интернета, помимо этого, и мы вернемся к ним, а также к вопросам их безопасности в будущих разделах.
На этом все. Всем хорошего дня!