По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Построение модели API требует стратегического подхода, и он связан с CRUD. Направляя разработчиков целиком и полностью, CRUD прокладывает путь для разработчиков API, ведя их по пути разработки доработанных и высококлассных API. Что такое CRUD? CRUD – это сокращение от Create (создание), Read (чтение), Update (модификация) и Delete (удаление). Эти четыре функции являются ключевыми принципами, которым следуют разработчики и программисты API при создании надежных API. В соответствии с отраслевым стандартом каждая модель API должна следовать всем этим четырем (или как минимум трем) принципам в процессе выполнения. Некоторые языки программирования следуют CRUD в том виде, в котором он есть, в то время как лишь некоторые используют адаптированную версию CRUD. К языкам, использующим инфраструктуру CRUD, относятся: Python, PHP, Java и .Net. CRUD работает как напоминание для разработчиков о том, что необходимо для того, чтобы приложение чувствовало себя полноценным. Она возникла в начале 80-х годов. В то время его использовали для иллюстрирования жизнеспособности базы данных SQL. Со временем он расширил список областей применения и стал ключевым принципом проектирования для DDS и HTTP. Определение функций CRUD Однозначное понимание функций CRUD позволяет разработчикам максимально эффективно использовать их. Итак, ознакомьтесь с каждой из 4 функций и рассмотрите примеры для того, чтобы лучше понимать их принцип действия. Create Эта функция используется для оповещения о введении любых новых изменений в базу данных и обеспечения их реализации. В реляционной базе данных SQL, Create называется INSERT. Этот оператор разрешает конечному пользователю создавать новые строки данных и позволяет ранее сохраненным данным легко взаимодействовать с новой базой данных. Пример: Допустим, мы добавляем Фрукты в список http://www.example.com/fruits/. Для того, чтобы создать объект «Манго», мы должны оправить запрос POST на этот URL: { “fruit": { "name": “Mango”, "color": “Yellow” } } Этот код создаст еще один объект в списке фруктов с именем «манго», у которого есть свойство (цвет) со значением «желтый». При успешном создании вы получите HTTP-ответ 201. Read Что функция поиска делает в обычных случаях, вы можете узнать, почитав о реляционных базах данных. Конечным пользователям разрешено искать различимые значения или данные в таблице данных и находить значения. Можно использовать определённые ключевые слова или фильтровать данные, чтобы получить точную информацию. Пример: Теперь для того, чтобы прочитать список, в который вы добавили объект в предыдущем примере, воспользуемся GET-запросом. Используйте этот код: GET http://www.example.com/fruits/ Если для вашего запроса существует запись, то вы увидите HTTP-ответ 200. Также вы увидите список фруктов. { "fruits": [ { "id": 1, "name": “Apple”, "color": “Red” }, { "id": 2, "name": “Grapes”, "color": “Green” }, ... { "id": 3, "name": “Mango”, "color": “Yellow” } ] } Для того, чтобы увидеть детали, связанные с конкретным объектом Манго, который мы создали, используйте этот код: GET http://www.example.com/fruits/3/ Update Функция модификации полезна для изменения уже существующих записей без внесения каких-либо нарушений в существующую базу данных. Для полной модификации требуется некоторая модификация в нескольких областях. Эта функция известна как Update как в SQL, так и в Oracle HCM Cloud. Пример: Для того, чтобы изменить значение объекта, выполним PUT-запрос для URL-адреса конкретного объекта. Вот так: PUT http://www.example.com/fruits/3/ { "fruits": { "name": “Ripe Watermelon”, "color": “Blood Red” } } Если возвращается идентификатор состояния 200, то обновление прошло успешно. Для подтверждения вы можете прочитать этот объект повторно и просмотреть значения для него. Delete При помощи этой функции пользователи могут удалять определенные записи или данные из определенной базы данных. Вы можете удалять данные, которые больше не нужны или устарели. Удаление бывает двух типов: обратимое или необратимое удаление. Необратимое удаление удаляет данные один раз, а обратимое используется для обновления состояния строки данных без ее окончательного удаления. Пример: Это очень просто. Давайте удалим созданный нами объект. DELETE http://www.example.com/fruits/3/ Теперь при GET-запросе (чтение) вы получите код 404, который говорит о том, что данных по вашему запросу нет. Преимущества CRUD Есть что-то, что заставляет разработчиков и дизайнеров приложений предпочитать CRUD любому другому подходу. Это «что-то» - это непревзойденная производительность, интегрированная с некоторыми уникальными функциями. Основные преимущества, которыми можно воспользоваться после запуска CRUD, представлены ниже. Меньшая вероятность атак путем внедрения SQL-кода Использование SQL-языка имеет больше шансов столкнуться с SQL-атаками, поскольку все операторы SQL выполняются непосредственно на SQL-серверах. Сервер также хранит инструкции и процедуры SQL, доступ неавторизованных ресурсов к которым может оказаться фатальным. Использование CRUD позволяет контролировать возможные атаки путем внедрения SQL-кода, поскольку использует уже сохраненные действия и не требует создания динамических запросов с использованием данных конечного пользователя. Кроме того, такой подход использует однозначное цитирование параметров SQL-операторов. Лучшая защита от случайного просмотра Пользователи специальных SQL-операторов должны получить разрешение на доступ к таблицам базы данных. После успешного предоставления разрешения конечным пользователям разрешается читать и управлять данными, имеющимися в Excel, Word и любой другой программе. Также возможен обход бизнес-правил приложения. Однако делать это не всегда выгодно. Риски утечки данных есть всегда. CRUD в такой ситуации полезен, так как делает возможным использование ролей приложений. Используя роли приложений, можно обеспечить высоко интегрированную безопасность базы данных и контролировать права доступа. Полномочия могут защищаться паролем, а поскольку пароли также интегрированы в приложение, то изменить их сложно. Таким образом, можно покончить со случайным просмотром. CRUD vs REST – сравнение CRUD и REST очень часто используют для обозначения одного и того же подхода. Такая путаница очевидна, так как приложения REST следуют принципу, подобному CRUD, для взаимодействия с другими приложениями или компонентами. Тем не менее, эти два термина не идентичны и имеют ряд явных сходств и различий. Что общего? Приложения REST разрабатываются с сохранением определенного набора ресурсов в смысловом центре. Эти ресурсы, как и ресурсы CRUD, можно легко создавать, читать, модифицировать и удалять. Просто вместо Create, Read, Update и Delete в REST используются ресурсы PUT/POST, GET, PATCH/POST и DELETE. В чем разница? Абсолютно точно, то у этих двоих больше различий, чем сходств. Взгляните на ключевые различия между ними. В части определения REST упоминается как архитектурная система, а CRUD – как функция. REST «крутится» вокруг ресурсов, основанных на компонентах HTTP. CRUD «крутится» вокруг информации, хранящейся в настройках базы данных. CRUD может быть частью REST, но REST не может быть частью CRUD. REST – это независимый подход, который может правильно функционировать и без CRUD. Что такое CRUD-тестирование? CRUD-тестирование – это оригинальная методология тестирования методом «черного ящика», которая широко используется для подтверждения полезности данного программного обеспечения в режиме реального времени. Это понятие используется для SQL и других ресурсов СУБД, для которых гарантируется точное отображение данных, сквозное обслуживание ACID-свойств и несравнимая целостность данных. Обеспечение безопасности в REST и CRUD-операциях Аутентификация, авторизация и учет использования ресурсов (или ААА – Authentication, Authorization, Accounting) – это крайне эффективная практика безопасности, которая одинаково хорошо подходят для REST и CRUD. Она включает в себя аутентификацию конечных пользователей, выполнение авторизации перед каждым доступом и привлечение конечных пользователей к ответственности за свои действия или использование данных.
img
В одном из прошлых статей мы рассмотрели способы фильтрации маршрутов для динамического протокола маршрутизации EIGRP. Следует отметить, что EIGRP проприетарная разработка Cisco, но уже открыта другим производителям. OSPF же протокол открытого стандарта и поддерживается всем вендорами сетевого оборудования. Предполагается, что читатель знаком с данным протоколом маршрутизации и имеет знания на уровне CCNA. OSPF тоже поддерживает фильтрацию маршрутов, но в отличии от EIGRP, где фильтрацию можно делать на любом маршрутизаторе, здесь она возможна только на пограничных роутерах, которые называются ABR (Area Border Router) и ASBR (Autonomous System Boundary Router). Причиной этому является логика анонсирования маршрутов в протоколе OSPF. Не вдаваясь в подробности скажу, что здесь маршруты объявляются с помощью LSA (Link State Advertisement). Существует 11 типов LSA, но рассматривать их мы не будем. По ходу статьи рассмотрим только Type 3 LSA и Type 5 LSA. LSA третьего типа создаются пограничными роутерами, которые подключены к магистральной области (backbone area) и минимум одной немагистральной. Type 3 LSA также называются Summary LSA. С помощью данного типа LSA ABR анонсирует сети из одной области в другую. В таблице базы данных OSPF они отображается как Summary Net Link States: Фильтрация LSA третьего типа говорит маршрутизатору не анонсировать сети из одной области в другую, тем самым закрывая доступ к сетям, которые не должны отображаться в других областях. Видео: протокол OSPF (Open Shortest Path First) за 8 минут Для настройки фильтрации применяется команда area area-num filter-list prefix prefix-list-name {in | out} в интерфейсе конфигурации OSPF. Как видно, здесь применяются списки префиксов или prefix-list, о которых мы говорили в предыдущей статье. Маршрут не анонсируется если попадает под действие deny в списке префиксов. Камнем преткновения в данной команде являются ключевые слова in и out. Эти параметры определяют направление фильтрации в зависимости от номера области, указанного в команде area are-num filter. А работают они следующим образом: Если прописано слово in, то маршрутизатор предотвращает попадание указанных сетей в область, номер которого указан в команде. Если прописано слово out, то маршрутизатор фильтрует номера сетей, исходящих из области, номер которого указан в команде. Схематически это выглядит так: Команда area 0 filter-list in отфильтрует все LSA третьего типа (из областей 1 и 2), и они не попадут в area 0. Но в area 2 маршруты в area 1 попадут, так как нет команд вроде area 2 filter-list in или area 1 filter-list out. Вторая же команда: area 2 filter-list out отфильтрует все маршруты из области 2. В данном примере маршрутная информация из второй области не попадёт ни в одну из областей. В нашей топологии, показанной на рисунке, имеются две точки фильтрации, то есть два пограничных маршрутизатора: При чем каждый из этих маршрутизаторов будет фильтровать разные сети. Также мы здесь используем обе ключевых слова in и out. На ABR1 напишем следующие prefix-list-ы: ip prefix-list FILTER-INTO-AREA-34 seq 5 deny 10.16.3.0/24 ip prefix-list FILTER-INTO-AREA-34 seq 10 permit 0.0.0.0/0 le 32 А на ABR2 ip prefix-list FILTER-OUT-OF-AREA-0 seq 5 deny 10.16.2.0/23 ge 24 le 24 ip prefix-list FILTER-OUT-OF-AREA-0 seq 10 permit 0.0.0.0/0 le 32 Теперь проверив таблицу маршрутизации на R3, увидим, что маршрут до сети 10.16.3.0 отсутствует: Теперь поясним, что мы сказали маршрутизатору. В конфигурации ABR1 первый prefix-list с действием deny совпадет только с маршрутом, который начинается на 10.16.3.0, а длина префикса равна 24. Второй же префикс соответствует всем остальным маршрутам. А командой area 34 filter-list prefix FILTER-INTO-AREA-34 in сказали отфильтровать все сети, которые поступают в 34 область. Поэтому в базе OSPF маршрута в сеть 10.16.3 через R1 не будет. На втором же маршрутизаторе пошли другим путём. Первый команда ip prefix-list FILTER-OUT-OF-AREA-0 seq 5 deny 10.16.2.0/23 ge 24 le 24 совпадет с маршрутами, который начинается на 10.16.2.0 и 10.16.3.0, так как указан /23. На языке списка префиксов означает взять адреса, которые могут соответствовать маске 255.255.254.0, а длина префикса адреса равна 24. А командой area 0 out сказали отфильтровать все LSA 3 типа, которые исходят из области 0. На первый взгляд кажется сложным, но если присмотреться, то все станет ясно. Фильтрация маршрутов в OSPF через distribute-list Фильтрация LSA третьего типа не всегда помогает. Представим ситуацию, когда в какой-то области 50 маршрутизаторов, а нам нужно чтобы маршрутная информация не попала в таблицу только 10 роутеров. В таком случае фильтрация по LSA не поможет, так как он фильтрует маршрут исходящий или входящий в область, в нашем случае маршрут не попадёт ни на один маршрутизатор, что противоречит поставленной задаче. Для таких случаев предусмотрена функция distribute-list. Она просто не добавляет указанный маршрут в таблицу маршрутизации, но в базе OSPF маршрут до сети будет. В отличии от настройки distribute-list в EIGRP, в OSPF нужно учесть следующие аспекты: Команда distribute-list требует указания параметров in | out, но только при применении in фильтрация будет работать. Для фильтрации команда может использовать ACL, prefix-list или route-map. Можно также добавить параметр interface interface-type-number, чтобы применить фильтрацию для конкретного интерфейса. Внесем некоторые изменения в конфигурацию маршрутизатора R3, чтобы отфильтровать маршрут до сети 10.16.1.0: Как видно на выводе, до применения prefix-list-а, в таблице маршрутизации есть маршрут до сети 10.16.1.0. Но после внесения изменений маршрут исчезает из таблицы, но вывод команды show ip ospf database | i 10.16.1.0 показывает, что в базе OSPF данный маршрут существует. Фильтрация маршрутов на ASBR Как уже было сказано в начале материала, ASBR это маршрутизатор, который стоит между двумя разными автономными системами. Именно он генерирует LSA пятого типа, которые включают в себя маршруты в сети, находящиеся вне домена OSPF. Топология сети показана ниже: Конфигурацию всех устройств из этой статьи можно скачать в архиве по ссылке ниже. Скачать конфиги тестовой лаборатории Как видно из рисунка, у нас есть два разных домена динамической маршрутизации. На роутере ASBR настроена редистрибюция маршрутов, то есть маршруты из одно домена маршрутизации попадают во второй. Нам нужно отфильтровать маршруты таким образом, чтобы сети 172.16.101.0/24 и 172.16.102.0/25 не попали в домен EIGRP. Все остальные, включая сети точка-точка, должны быть видны для пользователей в сети EIGRP. Для фильтрации Cisco IOS нам дает всего один инструмент route-map. О них мы подробно рассказывали в статье и фильтрации маршрутов в EIGRP. Можно пойти двумя путями. Либо запрещаем указанные маршруты, в конце добавляем route-map с действием permit, который разрешит все остальные, либо разрешаем указанным в списке префиксов маршруты, а все остальное запрещаем (имейте ввиду, что в конце любого route-map имеется явный запрет deny). Покажем второй вариант, а первый можете протестировать сами и поделиться результатом. Для начала создаем списки префиксов с разрешёнными сетями: ip prefix-list match-area0-permit seq 5 permit 172.16.14.0/30 ip prefix-list match-area0-permit seq 10 permit 172.16.18.0/30 ip prefix-list match-area0-permit seq 15 permit 172.16.8.1/32 ip prefix-list match-area0-permit seq 20 permit 172.16.4.1/32 ip prefix-list match-area0-permit seq 25 permit 172.16.48.0/25 ip prefix-list match-area0-permit seq 30 permit 172.16.49.0/25 ip prefix-list match-area3-permit seq 5 permit 172.16.103.0/24 ge 26 le 26 Еще раз отметим, что фильтрация LSA Type 5 делается только на ASBR маршрутизаторе. До внесения изменений на маршрутизаторе R1 видны сети до 101.0 и 102.0: Применим изменения на ASBR: Проверим таблицу маршрутизации R1 еще раз: Как видим, маршруты в сеть 101.0 и 102.0 исчезли из таблицы. На этом, пожалуй, завершим это материал. Он и так оказался достаточно большим и сложным. Удачи в экспериментах!
img
Технология Blockchain представляет собой цепочку блоков, используемую для отправки информации о транзакциях и их хранении. Информация, хранящаяся в ней, может фактически принимать любую форму и отображать информацию о времени, дате или конкретной транзакции. Каждый блок содержит информацию о конкретном количестве транзакций. Когда он заполнен, создается еще один. Блоки можно отличить друг от друга с помощью уникальных хеш-кодов. Наиболее важной особенностью, которую имеет блокчейн, является тот факт, что он основан на одноранговой сети. Это означает, что ни один сервер или компьютер не проверяет транзакцию. Благодаря сложным криптографическим операциям технология полностью безопасна. Как работает блокчейн? Цепочка состоит из множества блоков. Создание другого блока возможно только после того, как транзакция была выполнена, и она будет завершена. Блокчейн использует одноранговую сеть. Это означает, что данные не хранятся в одном месте, что значительно усложняет хакерские атаки. Пользователь является единственным владельцем данных, убедившись, что они надежно защищены. После проверки транзакции она становится общедоступной, имеет хеш-код и присоединяется к ранее созданным блокам, образующим цепочку. Цифровые подписи в блокчейне Цифровые подписи делают то, что подразумевает название. Каждая транзакция должна быть проверена, поэтому получение подписи обязательно. Они обеспечивают безопасность и целостность данных, сохраненных в блоке. Это стандартная часть протокола цепочки блоков и защиты транзакций и их блоков. Преимущество цифровых подписей заключается в том, что они защищают не только саму транзакцию, но и личность того, кто ее выполняет. Это для предотвращения хакерских атак. Подпись невозможно подделать, она является результатом очень сложной математической записи. Блокчейн и безопасность Безопасность блокчейна состоит из многих факторов, включая ранее упомянутую цифровую подпись и существование сетей P2P. Но не только они актуальны. Одним из ключевых элементов, отвечающих за безопасность, является консенсус сети. Консенсус означает, что все узлы в сети синхронизированы друг с другом. Узлы согласовываются с состоянием блокчейна, которое является своего рода самоконтролем. Они также позволяют обновлять цепочку блоков. Каждая криптовалюта должна иметь защиту от внешних атак. В свою очередь, немодифицируемость - это невозможность изменить транзакции, которые уже были подтверждены и выполнены. Блокчейн построен таким образом, что не дает хакерам его атаковать. Редактирование блока влечет за собой изменение хеш-кода. Это определяется математической функцией. Если в нем изменятся какие-либо элементы, код также будет изменен. За ним больше блоков, что требует огромных вычислительных мощностей и это просто невозможно. Блокчейн в бизнесе - приложение Технология используется не только в криптовалютах. Многие бизнес-сектора используют эту технологию для улучшения своей деятельности. Повышается не только безопасность, но и упрощается процесс, что снижает затраты. Блокчейн в цепочке поставок - использование этой технологии позволяет решить проблемы путем создания истории продукта. Поставщики и получатели могут получить представление о процессе производства товаров. Это также может обеспечить проверку источника товара, что важно для медицинской промышленности. Блокчейн также гарантирует, что лекарственные препараты хранятся в соответствующих условиях. Блокчейн в банковском деле - позволяет пользоваться услугами банка независимо от дня и времени. Банки работают только пять дней в неделю, но каждый хочет пользоваться банковскими услугами в выходные дни. Блокчейн также помогает здесь проверить подлинность документов, и ускорить обмен средств. Блокчейн в здравоохранении - позволяет хранить записи пациентов. Это также позволяет быстрее идентифицировать и повышает безопасность и конфиденциальность документации. Блокчейн в криптовалютах - данная технология основой существования криптовалюты. Важно отметить, что сборы за транзакции не требуются из-за отсутствия центрального органа. Блокчейн в системах голосования - подсчет голосов с их полной историей, которая предотвращает их фальсификацию. Блокчейн в энергетике - учет транспорта энергии и внедрение счетчиков энергии в блокчейн. Блокчейн в азартных играх - обеспечивает анонимность данных победителя, переводы выигрышей и создание собственных валют в компьютерных играх. Блокчейн в государственных услугах - регистры персональных данных, налоги и регистры земли и ипотеки. Это лишь некоторые из множества отраслей, в которых используется блокчейн. Технология оптимизирует многие процессы, которые кажутся естественными, и это ее заслуга. Блокчейн - плюсы и минусы Как и любая система и технология, блокчейн также имеет свои плюсы и минусы. К преимуществам технологии блокчейн следует отнести: децентрализация - хранение информации не основано на одном месте. Благодаря этому данные не так легко изменить или манипулировать ими; снижение затрат - нет необходимости привлекать третьих лиц, необходимых для проверки определенных данных. Это снижает стоимость кампании, необходимой для выполнения ее процесса с точностью и безопасностью; точность - блокчейн лишен человеческих ошибок; безопасность - наличие технологии P2P, цифровых подписей и вышеупомянутых модификаций, и консенсуса делает процесс безопасным. За это отвечает наличие хеш-кода, который уникален для каждого отдельного блока, и его изменение, по возможности, практически невозможно. Из недостатков блокчейна можно указать: возможны хакерские атаки - как и в любой области, где есть технологии на базе компьютеров, есть вероятность атаки. Хоть это практически невозможно, но нельзя полностью исключить это; генерация затрат - улучшения, которые приносит блокчейн, огромны, но для их достижения необходимо много вычислительной мощности и, следовательно, необходимость инвестировать в дорогостоящее оборудование; ограниченное количество транзакций - как в случае с биткоинами, где подтверждение работы занимает около десяти минут, чтобы добавить новый блок в цепочку. То же самое относится к различным отраслям, где используется блокчейн.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59