По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Создание разделов диска позволяет разделить жесткий диск на несколько разделов, которые действуют независимо. В Linux пользователи должны структурировать устройства хранения (USB и жесткие диски) перед их использованием. Разбиение на разделы также полезно, когда вы устанавливаете несколько операционных систем на одном компьютере. В этом пошаговом руководстве вы узнаете, как создать раздел с помощью команды Linux parted или fdisk. Вариант 1: разбить диск на разделы с помощью команды parted Выполните следующие действия, чтобы разбить диск в Linux с помощью команды parted. Шаг 1. Список разделов Перед созданием раздела составьте список доступных запоминающих устройств и разделов. Это действие помогает определить устройство хранения, которое вы хотите разбить на разделы. Выполните следующую команду с sudo, чтобы вывести список устройств хранения и разделов: sudo parted -l Терминал распечатывает доступные устройства хранения с информацией о: Model - Модель запоминающего устройства. Disk - Имя и размер диска. Sector size - логический и физический размер памяти. Не путать с доступным дисковым пространством. Partition Table - тип таблицы разделов (msdos, gpt, aix, amiga, bsd, dvh, mac, pc98, sun и loop). Disk Flags - разделы с информацией о размере, типе, файловой системе и флагах. Типы разделов могут быть: Primary (Основной) - содержит файлы операционной системы. Можно создать только четыре основных раздела. Extended (Расширенный) - особый тип раздела, в котором можно создать более четырех основных разделов. Logical (Логический) - Раздел, созданный внутри расширенного раздела. В нашем примере есть два устройства хранения - /dev/sda и /dev/sdb Примечание. Первый диск хранения (dev/sda или dev/vda) содержит операционную систему. Создание раздела на этом диске может сделать вашу систему не загружаемой. Создавайте разделы только на дополнительных дисках (dev/sdb, dev/sdc, dev/vdb или dev/vdc). Шаг 2: Откройте диск для хранения Откройте диск хранения, который вы собираетесь разделить, выполнив следующую команду: sudo parted /dev/sdb Всегда указывайте запоминающее устройство. Если вы не укажете имя диска, он будет выбран случайным образом. Чтобы сменить диск на dev/sdb, выполните: select /dev/sdb Шаг 3: Создайте таблицу разделов Прежде чем разбивать диск, создайте таблицу разделов. Таблица разделов расположена в начале жесткого диска и хранит данные о размере и расположении каждого раздела. Типы таблиц разделов: aix, amiga, bsd, dvh, gpt, mac, ms-dos, pc98, sun и loop. Чтобы создать таблицу разделов, введите следующее: mklabel [partition_table_type] Например, чтобы создать таблицу разделов gpt, выполните следующую команду: mklabel gpt Введите Yes, чтобы выполнить: Примечание. Два наиболее часто используемых типа таблиц разделов - это gpt и msdos. msdos поддерживает до шестнадцати разделов и форматирует до 16 ТБ, а gpt форматирует до 9,4 ЗБ и поддерживает до 128 разделов. Шаг 4: проверьте таблицу Запустите команду print, чтобы просмотреть таблицу разделов. На выходе отображается информация об устройстве хранения: Примечание. Запустите команду help mkpart, чтобы получить дополнительную справку о том, как создать новый раздел. Шаг 5: Создайте раздел Давайте создадим новый раздел размером 1854 Мбайт, используя файловую систему ext4. Назначенное начало диска должно быть 1 МБ, а конец диска - 1855 МБ. Чтобы создать новый раздел, введите следующее: mkpart primary ext4 1MB 1855MB После этого запустите команду print, чтобы просмотреть информацию о вновь созданном разделе. Информация отображается в разделе Disk Flags: В таблице разделов gpt, тип раздела - это обязательное имя раздела. В нашем примере primary - это имя раздела, а не тип раздела. Чтобы сохранить свои действия и выйти, введите команду quit. Изменения сохраняются автоматически с помощью этой команды. Примечание. Сообщение «You may need to update /etc/fstab file» сигнализирует о том, что раздел может быть смонтирован автоматически во время загрузки. Вариант 2: разбить диск на разделы с помощью команды fdisk Выполните следующие действия, чтобы разбить диск в Linux с помощью команды fdisk. Шаг 1. Список существующих разделов Выполните следующую команду, чтобы вывести список всех существующих разделов: sudo fdisk -l Вывод содержит информацию о дисках и разделах хранилища: Шаг 2: Выберите диск для хранения Выберите диск для хранения, на котором вы хотите создать разделы, выполнив следующую команду: sudo fdisk /dev/sdb Диск /dev/sdbstorage открыт: Шаг 3: Создайте новый раздел Запустите команду n, чтобы создать новый раздел. Выберите номер раздела, набрав номер по умолчанию (2). После этого вас попросят указать начальный и конечный сектор вашего жесткого диска. Лучше всего ввести в этом разделе номер по умолчанию (3622912). Последний запрос связан с размером раздела. Вы можете выбрать несколько секторов или установить размер в мегабайтах или гигабайтах. Введите + 2 GB, чтобы установить размер раздела 2 ГБ. Появится сообщение, подтверждающее создание раздела. Шаг 4: запись на диск Система создала раздел, но изменения не записываются на диск. 1. Чтобы записать изменения на диск, выполните команду w: 2. Убедитесь, что раздел создан, выполнив следующую команду: sudo fdisk -l Как видите, раздел /dev/sdb2 создан. Отформатируйте раздел После создания раздела с помощью команды parted или fdisk отформатируйте его перед использованием. Отформатируйте раздел, выполнив следующую команду: sudo mkfs -t ext4 /dev/sdb1 Смонтировать раздел Чтобы начать взаимодействие с диском, создайте точку монтирования (mount point) и смонтируйте к ней раздел. 1. Создайте точку монтирования, выполнив следующую команду: sudo mkdir -p /mt/sdb1 2. После этого смонтируйте раздел, введя: sudo mount -t auto /dev/sbd1 /mt/sdb1 Терминал не распечатывает вывод, если команды выполнены успешно. 3. Убедитесь, что раздел смонтирован, с помощью команды df hT:
img
В настоящее время происходит рост потребности повышения уровня информатизации и увеличения количества узлов беспроводного доступа, особенно в информационно-коммуникационных технологиях. Пользователи, успешно использующие беспроводные информационные ресурсы, могут всегда и в любое время работать над самыми разными задачами, гораздо более эффективно, по сравнению с теми, кто до сих пор остаётся заложниками кабельных соединений для компьютерных сетей благодаря тому, что напрямую зависят от строго запланированной телекоммуникационной инфраструктуры. Беспроводные сети по сравнению с традиционными проводными решениями имеют преимущества, такие как: Просто создать и легко реализовать; Гибкость всей сети на уровне архитектуры, когда есть возможность изменения топологии сети без прерывания процесса, а также подключение, перемещение и отключение мобильных пользователей без потери драгоценного времени; Быстрота проектирования и ввод в эксплуатацию; Беспроводная сеть не нуждается в огромной массе кабелей и длительном прокладывании. Из-за быстрого развития беспроводных сетей появилась возможность осуществлять управление большинством привычных современных устройств. Благодаря этому взаимодействие населения и специальных служб, повышает эффективность работы многих учреждений путём использования электронных порталов. Оперативное реагирование общества на появление инновационных технологий оказывает положительное влияние на развитие городской инфраструктуры. Данные факторы положили начало развитию системы, которая в зарубежных вариантах называется, как "Smart City", что обычно называют "Умный город". Варианты использования таких систем не ограничиваются простым управлением привычных устройств, что позволяет объединить устройства в группы, а их, в свою очередь, в целые экосистемы с одним центром управления. Это позволяет осуществлять гибкую настройку различных действий по расписанию или при выполнении каких-то смежных действий. Например, интеллектуальные уличные фонари функционируют как точки беспроводного доступа к технологии Wi-Fi, оснащены камерой наблюдения, зарядными устройствами для электромобилей и телефонов и даже измеряют качество воздуха. Этот многозадачный уличный фонарь работает как датчик и привод, предоставляя услуги, которые улучшают качество жизни жителей, собирая важные данные об окружающей среде. При всем подобном разнообразии возможностей и удобстве современных технологий, они не лишены серьёзных недостатков. Беспроводные сети являются сетями повышенной опасности с точки зрения возможного наличия уязвимостей, которые могут использоваться осведомленными злоумышленниками, поэтому необходимо принимать комплексные меры по защите. Также существует проблема надежного хранения данных. Существует несколько подходов к реализации данной задачи: хранение данных на едином централизованном сервере, либо применение технологий распределенного хранения данных. Однако разные подходы не лишены своих недостатков. Хранение данных централизованно повышает: Риск кражи базы данных с целью анализа существующих записей и поиска коллизий для существующих хешей; Риск подмены данных для предоставления доступа к системе по ложным данным; Риск удаления данных с целью полного отказа работоспособности системы.
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