По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В больших корпоративных сетях, которые занимаются обслуживанием клиентов важно вовремя получать уведомления о неполадках в сети и устранять их. В этом деле администраторам помогают системы мониторинга, которых сегодня в сети существует достаточно много, как платных, так и бесплатных. Своего рода стандартом в ИТ является PRTG (Paessler Router Traffic Grapher), которая может отправлять уведомления о событиях через e-mail, SMS, Push-уведомлений. Сегодня сложно представить кого-то, кто не пользуется хоть одним мессенджером. Среди них особо выделяется Telegram, который пользуется популярностью благодаря своей безопасности и функционалу. Здесь можно создать своего бота, который будет выполнять все ваши команды исходя из поставленной задачи. В одном из материалов мы рассказывали уже о том, как использовать Telegram для управления "Умным домом". Здесь же расскажем о том, как интегрировать Telegram в PRTG и получать уведомления не на почту, на Telegram. Принцип работы такой: система мониторинга, в нашем случае PRTG, отправляет сообщения боту, а тот в свою очередь выводит их группу. Что нам нужно Telegram аккаунт Группа, куда будем добавлять нашего бота Доступ с PRTG сервера на https://api.telegram.org/ Создание бота Для начала нам нужно создать бота, в чем на поможет "The Botfather". Начинаем новый чат с ним в Telegram: Командой /newbot под руководством Botfather начинаем создание бота. Задаем ему имя, которое будет отображаться и имя пользователя: После этих несложных манипуляций получаем API токен нашего бота, который используем в будущем. По умолчанию, бот может быть добавлен в любую группу и может получать сообщения от кого угодно. Ограничить это можно в настройках приватности, которые доступны командами /setprivacy и /setjoingroups. Далее добавляем бота в группу, где находятся администраторы и другой заинтересованный персонал. Через группу посылаем боту сообщение /start, чтобы активировать его. Затем уже настраиваем политики приватности, о которых говорилось выше. С созданием бота закончили, теперь нужно настроить получение уведомлений Настройка уведомлений Помните, в конце создания бота нам выдали API ключ. Перейдите по следующей ссылке, предварительно подставив вместо <apikey> API ключ вашего бота: https://api.telegram.org/bot<apikey>/getMe Вы должны получить что-то подобное: { "ok": true, "result": { "id": 1234567890, "first_name": "PRTGNotiBot", "username": "PRTGNotificationBot" }} Если вышли какие-то ошибки, убедитесь, что API ключ введён правильно. Далее открываем ту же ссылку, только вместо getMe подставляем getUpdates. Мы получим список чатов, в которые добавлен наш бот. { "ok": true, "result": [{ "update_id": 521075218, "message": { "message_id": 3, "from": { "id": 11512298, "first_name": "xxxxxxxxx", "last_name": "xxxxxxxxx", "username": "xxxxxxxxx" }, "chat": { "id":-12345690, "title": "[Paessler] IT", "type": "group", "all_members_are_administrators": true }, "date": 1493834122, "text": "/start", "entities": [{ "type": "bot_command", "offset": 0, "length": 6 }] } }]} Из этого вывода нам нужен идентификатор чата, включая знак "-". Теперь мы готовы создать шаблон уведомления в PRTG. Переходим в Setup > Account Settings > Notifications. Добавляем новый шаблон уведомления: Выбираем вводим название шаблона, выбираем тип сенсора (рекомендуем pingsensor) В качестве шаблона выбираем HTTP. Вводим ссылку https://api.telegram.org/bot<your-api-key>/sendMessage, подставив API токен вашего бота. В строку Postdata вводим следующие строки: chat_id=-<your-chat-id>&text=There's a *%status* sensor in your PRTG![%sensor](%linksensor)*Last Message* %lastmessage*Down since* %since*Device* %device*Group* %group&parse_mode=Markdown chat-id идентификатор чата, который получили выше. text текст сообщения, который будет отправлять бот. Текст можно изменять по вашему усмотрению. %status переменная PRTG. Звездочки вокруг него это стиль редактирования Telegram API. Как именно обрабатывать стиль указано в конце текста параметром parse_mode=Markdown. Если нужно, чтобы уведомление пришло если сеть поднялась, то нужно создать другой шаблон с соответствующим текстом: chat_id=-123456890&text=%device% is *%status*!&parse_mode=Markdown Хотя можно совместить это в одном шаблоне, но лучше сделать два отдельных шаблона, на случай если каждому шаблону нужно добавить разные переменные, как в нашем случае. Затем можно отправить тестовое сообщение, в результате чего должны получить что-то подобное: Если все прошло успешно, нужно привязать шаблон к конкретному сенсору. Чтобы система не бомбила ваш Telegram из-за незначительных событий, лучше привязать шаблон к сенсору PING. Для этого переходим на вкладку Devices, среди сенсоров нужного устройства наводим курсор мыши на сенсор PING и кликаем на иконку звоночка. Открывается страница добавления уведомлений. Выбираем Add State Trigger заполняем поля согласно политике организации. Можно сделать как на скриншоте: Как видно на скриншоте, мы отправляем уведомление только когда сеть упала и поднялась. Повторно не посылаем, чтобы не надоедало. Вот и всё. Думаю материал окажется полезным для вас.
img
Периметр сети в традиционном понимании исчез. Доступ к приложениям и цифровым ресурсам организации происходит из разных мест вне стен офиса и контроль за этими доступами становится серьезной проблемой. Дни, когда можно было защитить границы сети, давно прошли. Настало время для новых стратегий безопасности с нулевым доверием - Zero Trust. Когда цифровым активам компании приходится преодолевать большие расстояния по небезопасным путям Интернета, ставки настолько высоки, что нельзя доверять ничему и никому. Поэтому следует использовать модель сети с нулевым доверием, чтобы постоянно ограничивать доступ всех пользователей ко всем сетевым ресурсам. В сетях с нулевым доверием любая попытка доступа к ресурсу ограничивается пользователем или устройством, независимо от того, имели ли они ранее доступ к одному и тому же ресурсу. Чтобы получить доступ к ресурсам любой пользователь или устройство всегда должны проходить процесс аутентификации и верификации, даже если они физически находятся в организации. Эти проверки должны быть быстрыми, чтобы политики безопасности не снижали производительность приложений и работу пользователей. Zero-trust vs. VPN Модель сети с нулевым доверием заменяет модель VPN, традиционно используемую компаниями для удаленного доступа своих сотрудников к цифровым ресурсам. VPN заменяется, поскольку они имеют основной недостаток, который могут устранить сети с нулевым доверием. В VPN любая уязвимость, которое происходит в зашифрованном канале, соединяющем пользователя с сетью организации, предоставляет потенциальным злоумышленникам неограниченный доступ ко всем ресурсам компании, подключенным к сети. В старых локальных инфраструктурах VPN работали хорошо, но они создают больше проблем, чем решений в облачных или смешанных инфраструктурах. Сети с нулевым доверием устраняют этот недостаток VPN, но добавляют потенциальный недостаток: они могут привести к дополнительной сложности с точки зрения реализации и обслуживания, поскольку полномочия должны быть обновлены для всех пользователей, устройств и ресурсов. Это требует дополнительной работы, но взамен ИТ-отделы получают больший контроль над ресурсами и уменьшается плоскость атаки. К счастью, преимуществами сети с нулевым доверием можно пользоваться без дополнительных усилий по обслуживанию и развертыванию благодаря инструментам, которые автоматизируют и помогают в задачах администрирования сети. Описанные ниже инструменты помогают применять политики нулевого доверия с минимальными усилиями и затратами. 1. Perimeter 81 Perimeter 81 предлагает два подхода к управлению приложениями и сетями организации и обеспечению их безопасности как в облачных, так и локальных средах. Оба подхода начинаются с предложения сетей с нулевым доверием в качестве услуги. Для этого в Perimeter 81 используется программно-определяемая архитектура периметра, которая обеспечивает большую гибкость для новых пользователей и обеспечивает большую видимость сети. Кроме того, сервис совместим с основными поставщиками облачной инфраструктуры. Доступ к приложениям с нулевым доверием основан на предположении, что каждая компания имеет критически важные приложения и службы, доступ к которым большинству пользователей не требуется. Сервис позволяет создавать политики для конкретных пользователей в зависимости от их ролей, устройств, местоположений и других идентификаторов. При этом Zero Trust Network Access определяет сегментацию сети организации по зонам доверия, что позволяет создавать пределы доверия, контролирующие поток данных с высоким уровнем детализации. Доверенные зоны состоят из наборов элементов инфраструктуры с ресурсами, которые работают на одном уровне доверия и обеспечивают аналогичную функциональность. Это уменьшает количество каналов связи и минимизирует возможность возникновения угроз. Служба доступа к сети с нулевым доверием Perimeter 81 обеспечивает полное и централизованное представление сети организации, обеспечивая наименее привилегированный доступ для каждого ресурса. Его функции безопасности соответствуют модели SASE компании Gartner, поскольку безопасность и управление сетью унифицированы на единой платформе. Две услуги Perimeter 81 включены в схему ценообразования с широким спектром опций. Эти возможности варьируются от базового плана с необходимыми компонентами для обеспечения безопасности сети и управления ею до корпоративного плана, который может неограниченно масштабироваться и обеспечивает специальную поддержку 24/7. 2. ZScaler Private Access ZScaler Private Access (ZPA) - это облачная сетевая служба с нулевым доверием, которая управляет доступом к частным приложениям организации независимо от того, находятся ли они в собственном центре обработки данных или в общедоступном облаке. Благодаря ZPA приложения полностью невидимы для неавторизованных пользователей. В ZPA связь между приложениями и пользователями осуществляется в соответствии со стратегией «наизнанку». Вместо расширения сети для подключения пользователей (как это должно быть сделано при использовании VPN), пользователи никогда не находятся внутри сети. Этот подход существенно минимизирует риски, избегая распространения вредоносных программ и рисков перемещения внутри периметра. Кроме того, сфера применения ZPA не ограничивается веб-приложениями, а относится к любому частному приложению. ZPA использует технологию микро-туннелей, которая позволяет сетевым администраторам сегментировать сеть по приложениям, устраняя необходимость сегментации в сети с помощью межсетевого экрана или списками управления доступом (ACL). В микро-туннелях используется шифрование TLS и пользовательские закрытые ключи, которые усиливают безопасность при доступе к корпоративным приложениям. Благодаря усовершенствованным API и ML (машинное обучение), ZPA позволяет ИТ-отделам автоматизировать механизмы нулевого доверия, обнаруживая приложения и создавая для них политики доступа, а также автоматически создавая сегментацию для каждой отдельной рабочей нагрузки приложения. 3. Cloudflare Access Сетевая служба нулевого доверия Cloudflare поддерживается частной сетью с точками доступа, распределенными по всему миру. Это позволяет ИТ-отделам обеспечивать высокоскоростной и безопасный доступ ко всем ресурсам организации - устройствам, сетям и приложениям. Сервис Cloudflare заменяет традиционные, ориентированные на сеть периметры безопасности, используя вместо этого безопасный доступ на близком расстоянии, обеспечивающий оптимальную скорость распределенных рабочих групп. Доступ Cloudflare с нулевым доверием управляет общими приложениями в организации, проверяя подлинность пользователей через собственную глобальную сеть. Это позволяет ИТ-менеджерам регистрировать каждое событие и каждую попытку доступа к ресурсу. Кроме того, это упрощает поддержку пользователей и добавление новых пользователей. С помощью Cloudflare Access организация может поддерживать свои идентификационные данные, поставщиков защиты, состояние устройств, требования к местоположению каждого приложения и даже существующую облачную инфраструктуру. Для контроля идентичности Cloudflare интегрируется с Azure AD, Okta, Ping и устройством с Tanium, Crowdstrike и Carbon Black. Cloudflare предлагает бесплатную версию своего сервиса, которая предоставляет основные инструменты и позволяет защитить до 50 пользователей и приложений. Для большего числа пользователей или приложений, а также чтобы воспользоваться другми преимуществами, вроде круглосуточной поддержки по телефону и чату, следует выбрать платные версии. 4. Wandera Сетевое решение Wandera Private Access с нулевым доверием обеспечивает быстрый, простой и безопасный удаленный доступ к приложениям организации, независимо от того, работают ли они в SaaS или развернуты внутри организации. Сервис отличается своей простотой, процедурами установки, которые могут быть выполнены за считанные минуты и не требуют специализированного оборудования, сертификатов или масштабирования. Wandera Private Access предлагает гибкость распределенным рабочим группам, работающим на разнородных платформах, с управляемыми или личными устройствами (BYOD). Решение обеспечивает видимость доступа к приложениям в реальном времени, идентификацию теневых ИТ-отделов и автоматическое ограничение доступа с зараженных или небезопасных устройств благодаря политике доступа на базе учета рисков. С помощью Wandera Private Access можно реализовать модели безопасности, ориентированные на идентификацию, гарантируя, что только авторизованные пользователи смогут подключаться к приложениям организации. Использование микротуннелей на основе приложений связывает пользователей только с приложениями, к которым они имеют право доступа. Применение политики безопасности остается согласованным во всех инфраструктурах, будь то облачные приложения, центры обработки данных или приложения SaaS. Система защиты Wandera работает от интеллектуального механизма обнаружения угроз под названием MI: RIAM. Этот двигатель ежедневно снабжается информацией, предоставляемой 425 миллионами мобильных датчиков, что обеспечивает защиту от самого широкого спектра известных угроз и угроз нулевого дня. 5. Okta Okta предлагает модель безопасности с нулевым доверием, которая охватывает широкий спектр услуг, включая защиту приложений, серверов и API; унифицированный и безопасный доступ пользователей к интерактивным и облачным приложениям; адаптивная, контекстно-зависимая, многофакторная аутентификация и автоматическое отключение для уменьшения рисков для бесхозных учетных записей. Универсальная служба каталогов Okta обеспечивает единое консолидированное представление каждого пользователя в организации. Благодаря интеграции групп пользователей с AD и LDAP, а также связям с системами HR, приложениями SaaS и сторонними поставщиками удостоверений, Okta Universal Directory интегрирует всех типов пользователей, будь то сотрудники компании, партнеры, подрядчики или клиенты. Okta выделяется своей службой защиты API, поскольку API рассматриваются как новая форма теневых ИТ. Управление доступом к API Okta сокращает время планирования и применения политик на основе XML до нескольких минут, облегчая ввод новых API и интеграцию с партнерами для использования API. Механизм политики Okta позволяет внедрять передовые практики в области безопасности API, легко интегрируясь с фреймворками идентификации вроде OAuth. Политики авторизации API создаются на основе приложений, пользовательского контекста и членства в группах для обеспечения доступа к каждому API только нужных пользователей. Интеграционная сеть Okta позволяет избежать блокировки поставщиков, предоставляя организациям свободу выбора из более чем 7000 встроенных интеграций с облачными и готовыми системами. 6. CrowdStrike Falcon Решение CrowdStrike Falcon Identity Protection с нулевым доверием быстро останавливает нарушения безопасности из-за скомпрометированных учётных записей, защищая учетные записи всех пользователей, расположений и приложений в организации с помощью политики нулевого доверия. Программа Falcon Identity Protection направлена на сокращение затрат и рисков и повышение окупаемости инвестиций используемых инструментов за счет снижения требований к инженерным ресурсам и устранения избыточных процессов обеспечения безопасности. Унифицированный контроль всех учетных записей упрощает реализацию стратегий условного доступа и адаптивной аутентификации, а также обеспечивает более высокий уровень обслуживания пользователей и более широкий охват многофакторной аутентификации (MFA) даже для устаревших систем. Решение для удаленного доступа CrowdStrike обеспечивает полную видимость активности аутентификации всех учетных записей и конечных точек, предоставляя, среди прочего, данные о местоположении, источнике/назначении, типе входа (учетная запись человека или службы). В свою очередь, он защищает сеть от инсайдерских угроз, таких как устаревшие привилегированные учетные записи, неправильно назначенные учетные записи служб, ненормальное поведение и полномочия, скомпрометированные атаками продвижения внутри периметра. Благодаря интеграции с существующими решениями по обеспечению безопасности развертывание Falcon Identity Protection осуществляется в минимальные сроки и без усилий. Помимо прямой интеграции с решениями безопасности для критически важных активов, таких как CyberArk и Axonius, CrowdStrike предлагает высокопроизводительные API, которые позволяют компаниям интегрировать практически с любой системой. Заключение Новая норма, похоже, останется, и ИТ-администраторам нужно привыкнуть к ней. Удаленная работа будет оставаться повседневной реальностью, и сети организации больше никогда не будут иметь четко определенных границ. В этом контексте ИТ-администраторы должны как можно скорее внедрить сетевые и прикладные решения с нулевым доверием, если они не хотят подвергать риску самые ценные цифровые активы своих организаций.
img
Разработчики программного обеспечения должны держать много информации у себя в голове. Существует множество вопросов, которые нужно задать, когда речь заходит о создании веб-сайта или приложения: Какие технологии использовать? Как будет настроена структура? Какой функционал нам нужен? Как будет выглядеть пользовательский интерфейс? Особенно на рынке программного обеспечения, где производство приложений больше похоже на гонку за репутацией, чем на хорошо обдуманный процесс, один из важнейших вопросов, который часто остается на дне “Списка важных”: Как наш продукт будет защищен? Если вы используете надежный, открытый фреймворк для создания своего продукта (и, если он доступен и пригоден, почему бы и нет?), тогда базовые проблемы безопасности, как атаки CSFR и кодирование пароля, могут быть уже решены за вас. Тем не менее, быстро развивающимся разработчикам будет полезно освежить свои знания о стандартных угрозах, дабы избежать ошибок новичка. Обычно самое слабое место в безопасности вашего программного обеспечения - это вы. А кто может заниматься взломом?. Есть этичный хакер – это тот, кто ищет возможные слабости в безопасности и приватно рассказывает их создателям проекта. А чёрный хакер, которого так же зовут “Взломщик (cracker)” – это тот, кто использует эти слабости для вымогательства или собственного блага. Эти два вида хакеров могут использовать одинаковый набор инструментов и, в общем, пытаются попасть в такие места, куда обычный пользователь не может попасть. Но белые хакеры делают это с разрешением, и в интересах усиления защиты, а не уничтожения её. Черные хакеры – плохие ребята. Вот некоторые примеры наиболее распространённых атаках, которые используют слабости в защите: Внедрение SQL-кода и межсайтовый скриптинг XXS. SQL атаки SQL-инъекция (SQLi) - это тип инъекционной атаки, которая позволяет выполнять вредоносные SQL команды, для получения данных или вывода из строя приложения. По сути, злоумышленники могут отправлять команды SQL, которые влияют на ваше приложение, через некоторые входные данные на вашем сайте, например, поле поиска, которое извлекает результаты из вашей базы данных. Сайты, закодированные на PHP, могут быть особенно восприимчивы к ним, и успешная SQL-атака может быть разрушительной для программного обеспечения, которое полагается на базу данных (например, ваша таблица пользователей теперь представляет собой пустое место). Вы можете проверить свой собственный сайт, чтобы увидеть, насколько он восприимчив к такого рода атакам. (Пожалуйста, тестируйте только те сайты, которыми вы владеете, так как запуск SQL-кодов там, где у вас нет разрешения на это, может быть незаконным в вашем регионе; и определенно, не очень смешно.) Следующие полезные нагрузки могут использоваться для тестов: ' OR 1='1 оценивается как константа true, и в случае успеха возвращает все строки в таблице ' AND 0='1 оценивается как константа false, и в случае успеха не возвращает строк. К счастью, есть способы ослабить атаки SQL-кода, и все они сводятся к одной основной концепции: не доверяйте вводимым пользователем данным. Смягчение последствий SQL-кодов. Чтобы эффективно сдержать атаки, разработчики должны запретить пользователям успешно отправлять необработанные SQL-команды в любую часть сайта. Некоторые фреймворки сделают большую часть тяжелой работы за вас. Например, Django реализует концепцию объектно-реляционного отображения, или ORM с использованием наборов запросов. Мы будем рассматривать их в качестве функций-оболочек, которые помогают вашему приложению запрашивать базу данных с помощью предопределенных методов, избегая использование необработанного SQL. Однако возможность использовать фреймворк никогда не является гарантией. Когда мы имеем дело непосредственно с базой данных, существуют и другие методы, которые мы можем использовать, чтобы безопасно абстрагировать наши SQL-запросы от пользовательского ввода, хотя они различаются по эффективности. Они представлены по порядку от более к менее важному: Подготовленные операторы с переменной привязкой (или параметризованные запросы) Хранимые процедуры Белый список или экранирование пользовательского ввода Если вы хотите реализовать вышеприведенные методы, то эти шпаргалки - отличная отправная точка для более глубокого изучения. Достаточно сказать, что использование этих методов для получения данных вместо использования необработанных SQL-запросов помогает свести к минимуму вероятность того, что SQL будет обрабатываться любой частью вашего приложения, которая принимает входные данные от пользователей, тем самым смягчая атаки SQL-кодов. Межсайтовые скриптовые атаки (XSS) Если вы являетесь хакером, то JavaScript - это в значительной степени ваш лучший друг. Правильные команды будут делать все, что может сделать обычный пользователь (и даже некоторые вещи, которые он не должен делать) на веб-странице, иногда без какого-либо взаимодействия со стороны реального пользователя. Межсайтовые скриптовые атаки, или XSS, происходят, когда код JavaScript вводится на веб-страницу и изменяет ее поведение. Его последствия могут варьироваться от появления неприятных шуток до более серьезных обходов аутентификации или кражи учетных данных. XSS может происходить на сервере или на стороне клиента и, как правило, поставляется в трех вариантах: DOM (Document Object Model - объектная модель документа) на основе хранимых и отображаемых XSS. Различия сводятся к тому, где полезная нагрузка атаки вводится в приложение. XSS на основе DOM XSS на основе DOM возникает, когда полезная нагрузка JavaScript влияет на структуру, поведение или содержимое веб-страницы, загруженной пользователем в свой браузер. Они чаще всего выполняются через измененные URL-адреса, например, в фишинговых письмах. Чтобы увидеть, насколько легко было бы для введенного JavaScript манипулировать страницей, мы можем создать рабочий пример с веб-страницей HTML. Попробуйте создать файл в локальной системе под названием xss-test.html (или любым другим) со следующим кодом HTML и JavaScript: <html> <head> <title>My XSS Example</title> </head> <body> <h1 id="greeting">Hello there!</h1> <script> var name = new URLSearchParams(document.location.search).get('name'); if (name !== 'null') { document.getElementById('greeting').innerHTML = 'Hello ' + name + '!'; } </script> </h1> </html> На этой веб-странице будет отображаться заголовок "Hello!” если только он не получает параметр URL из строки запроса со значением name. Чтобы увидеть работу скрипта, откройте страницу в браузере с добавленным параметром URL, например: file:///path/to/file/xss-test.html?name=Victoria Наша небезопасная страница принимает значение параметра URL для имени и отображает его в DOM. Страница ожидает, что значение будет хорошей дружественной строкой, но что, если мы изменим его на что-то другое? Поскольку страница принадлежит нам и существует только в нашей локальной системе, мы можем тестировать ее сколько угодно. Что произойдет, если мы изменим параметр name, скажем, на: <img+src+onerror=alert("pwned")> Это всего лишь один пример, который демонстрирует, как может быть выполнена атака XSS. Смешные всплывающие оповещения могут быть забавными, но JavaScript может принести много вреда, в том числе помогая злоумышленникам украсть пароли и личную информацию. Хранимые и отраженные XSS Хранимые (stored) XSS возникают, когда полезная нагрузка атаки хранится на сервере, например, в базе данных. Атака влияет на жертву всякий раз, когда эти сохраненные данные извлекаются и отображаются в браузере. Например, вместо того чтобы использовать строку URL-запроса, злоумышленник может обновить свою страницу профиля на социальном сайте, чтобы внедрить скрытый сценарий, скажем, в раздел “Обо мне”. Сценарий, неправильно сохраненный на сервере сайта, будет успешно выполняться всё время, пока другой пользователь просматривает профиль злоумышленника. Одним из самых известных примеров этого является червь Samy, который практически захватил MySpace в 2005 году. Он распространялся путем отправки HTTP-запросов, которые копировали его на страницу профиля жертвы всякий раз, когда просматривался зараженный профиль. Всего за 20 часов он распространился на более чем миллион пользователей. Отраженные (reflected) XSS аналогично возникают, когда введенные данные перемещаются на сервер, однако вредоносный код не сохраняется в базе данных. Вместо этого он немедленно возвращается в браузер веб-приложением. Подобная атака может быть осуществлена путем заманивания жертвы для перехода по вредоносной ссылке, которая отправляет запрос на сервер уязвимого веб-сайта. Затем сервер отправит ответ злоумышленнику, а также жертве, что может привести к тому, что злоумышленник сможет получить пароли или совершить действия, которые якобы исходят от жертвы. Ослабление XSS Во всех этих случаях XSS могут быть сдержаны с помощью двух ключевых стратегий: проверка полей формы и предотвращение прямого ввода данных пользователем на веб-странице. Проверка полей формы Фреймворки снова могут нам помочь, когда речь заходит о том, чтобы убедиться, что представленные пользователем формы находятся в актуальном состоянии. Один из примеров - встроенные классы полей Django, которые предоставляют поля, проверяющие некоторые часто используемые типы, а также задают нормальные значения по умолчанию. Например, поле электронной почты Django использует набор правил, чтобы определить, является ли предоставленный ввод действительным письмом. Если отправленная строка содержит символы, которые обычно не присутствуют в адресах электронной почты, или если она не имитирует общий формат адреса электронной почты, то Django не будет считать это поле допустимым и форма не будет отправлена. Если вы не можете полагаться на фреймворк, можете реализовать вашу собственную проверку входных данных. Это можно сделать с помощью нескольких различных методов, включая преобразование типа, например, гарантируя, что число имеет тип int(); проверка минимальных и максимальных значений диапазона для чисел и длин строк; использование заранее определенного массива вариантов, который позволяет избежать произвольного ввода, например, месяцев года; и проверка данных на соответствие строгим регулярным формулировкам. К счастью, нам не нужно начинать все с нуля. Помогут доступные ресурсы с открытым исходным кодом, такой как валидация репозитория регулярных выражений OWASP, который предоставляет шаблоны для сопоставления их с некоторыми распространенными формами данных. Многие языки программирования предлагают библиотеки проверки, специфичные для их синтаксиса, и мы можем найти множество таких библиотек на GitHub. Хотя это и может показаться утомительным, правильно реализованная проверка ввода может защитить наше приложение от восприимчивости к XSS. Предотвращение прямого ввода данных Элементы приложения, которые непосредственно возвращают пользовательский ввод в браузер, при обычной проверке могут быть неочевидны. Мы можем определить области приложения, которые могут быть подвержены риску, изучив несколько вопросов: Как происходит поток данных через приложение? Что ожидает пользователь, когда он взаимодействует с этими входными данными? Где на нашей странице появляются данные? Становятся ли они встроенными в строку или атрибут? Вот некоторые примеры полезных нагрузок, с которыми мы можем поиграть, чтобы проверить входные данные на нашем сайте (опять же, только на нашем собственном сайте!). Успешное выполнение любого из этих образцов может указывать на возможную уязвимость к XSS из-за прямого ввода данных. "><h1>test</h1> '+alert(1)+' "onmouserover="alert(1) http://"onmouseover="alert(1) Как правило, если вы можете обойти прямой ввод данных, сделайте это. Кроме того, убедитесь, что вы полностью понимаете эффективность выбранных методов; например, использование innerText вместо innerHTML в JavaScript гарантирует, что содержимое будет задано как обычный текст вместо (потенциально уязвимого) HTML. Аккуратнее с вводом! Разработчики программного обеспечения явно находятся в невыгодном положении, когда речь заходит о конкуренции с черными хакерами. Несмотря на всю проделанную работу по защитите каждого ввода, который потенциально может скомпрометировать наше приложение, злоумышленнику достаточно только найти тот, который мы пропустили. Это все равно что установить засовы на всех дверях, но оставить окно открытым! Однако, научившись мыслить в том же ключе, что и злоумышленник, мы можем лучше подготовить наше программное обеспечение к противостоянию плохим парням. Как бы ни было интересно добавлять функции как можно быстрее, мы избежим большого количества долгов по кибербезопасности, если заранее продумаем поток нашего приложения, проследим за данными и обратим внимание на наши входные данные.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59