По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Когда вы разрабатываете какое-то программное обеспечение, вы поначалу можете не задумываться о часовых поясах. Если только вы не живете в стране, которая имеет несколько часовых поясов, например, в США или России. Не так давно я столкнулся с проблемой, которая была связана с часовыми поясами. Было несколько юнит-тестов, имеющих дело с датами. Они работали в моем офисе во Франции, но не работали в Марокко у новых членов нашей команды. Вот тот самый юнит-тест, который работает во Франции, но не работает в Марокко. Для меня это была возможность научиться правильно обрабатывать дату и время в международном программном обеспечении. В этой статье я расскажу о часовых поясах и поделюсь некоторыми правилами, которым нужно следовать. Краткое введение в часовые пояса Поскольку земля имеет форму практически сферы, то солнце восходит в Японии, а садится в Америке. Если бы все использовали глобальное время, то, например, 9:00 было бы восходом солнца в Японии, но закатом в Америки. Это было бы не очень удобно. Для того, чтобы время согласовывалось с фазами солнца, необходимо перейти от глобального времени ко времени в соответствии с вашим местоположением. В результате земной шар разбивается на часовые пояса (time zones), и каждый из них имеет некоторое смещение (offset). Это смещение представляет собой количество минут, которое необходимо добавить к глобальному времени, чтобы получить время вашего часового пояса. Это смещение может быть положительным или отрицательным. Глобальное время называется UTC, оно расшифровывается как Universal Time Coordinate (всемирное координированное время). Вы также могли слышать о GMT – часовом поясе без смещения. Например, когда по UTC время 10:50, то в Сан-Франциско – 03:50 со смещением -0700, а в Пекине – 18:50 со смещением +0800. Однако смещение может быть не только в целых часах. Например, смещение Непала составляет +0545. В придачу к этому смещению, связанному с часовым поясом, в некоторых странах еще дополнительно смещают часы два раза в год. DST, или летнее время, добавляет еще один час к смещению часового пояса перед наступлением летнего времени. Затем часы переводятся обратно зимой. Цель такого смещения заключается в том, чтобы сделать дневное время длиннее. Самый простой способ определить часовой пояс – использовать базу данных часовых поясов IANA. В результате вы получите строку, такую как Europe/Paris (Европа/Париж), в соответствии с шаблоном Регион/Город. Кроме того, Microsoft поддерживает собственную базу данных часовых поясов Microsoft, которая используется в их операционных системах. Но использование этой базы может вызвать проблемы при запуске кроссплатформенных приложений .NET Core. IANA по-прежнему остается лучшим вариантом. База данных Microsoft обновляется не так часто, имеет меньшую историю и использует довольно любопытные названия часовых поясов (например, Romantic Standard Time – романтическое стандартное время) и подвержена ошибкам. Например, постарайтесь не перепутать следующее: Arab Standard Time, Arabic Standard Time и Arabian Standard Time. И последнее: есть множество способов записать дату. К счастью, спецификация ISO 8601 устанавливает общее правило для представления даты. Ноябрь 11, 2018 в 12:51:43 AM (в часовом поясе UTC+00:00) 2018-11-05T12:51:43Z
img
При изучении принципов написания программного кода вы, вероятно, встречались с термином AJAX и задавались вопросом, что же он значит. Что это – язык программирования, платформа или приложение? На самом деле ничего из перечисленного, но к концу прочтения этой статьи вы будете знать, что же такое AJAX (Asynchronous Javascript and XML - асинхронные сценарии JavaScript и XML). История AJAX До конца 1990-х годов большинство веб-сайтов могли выдавать в качестве результата только полные веб-страницы при посещении страницы на сайте. Иначе говоря, для того, чтобы перезагрузить какие-либо отдельные данные, вам необходимо было перезагрузить всю страницу. Это был не самый эффективный способ предоставления информации пользователям, и, соответственно, не очень хорошо сказывалось на впечатлениях пользователей от взаимодействия с сайтом. Также это увеличивало нагрузку на серверы и пропускную способность, необходимую для обслуживания данных. В 1996 году Microsoft представила тег iframe для Internet Explorer, который позволял браузеру асинхронно извлекать данные в фоновом режиме. Это был шаг в верном направлении на пути к современным веб-приложения. В 2004 году Google добавила в Gmail функцию, позволяющую получать данные в фоновом режиме, а в 2005 году они сделали то же самое и для Google Maps. Технологии Google и Microsoft позволяли разработчикам получать данные с веб-сервера с помощью JavaScript без необходимости перезагружать страницу. В 2005 году Джесси Джеймсон Гарретт в своей статье (о том, как Google добились такого результата) назвал эту технологию AJAX. Эта технология быстро стала одним из самых популярных способов создания веб-приложений. А теперь, когда вы узнали немного из истории AJAX, давайте посмотрим, как это работает. Как работает AJAX? Что делает работу AJAX возможной, так это встроенный в веб-браузер объект XMLHttpRequests (XHR). Этот объект поддерживают все современные браузеры, включая: Chrome Firefox IE7+ Safari Opera Большинство библиотек JavaScript, которые используют AJAX, помещают этот объект в пользовательский код для того, чтобы упростить его использование разработчиками, но мы рассмотрим, как AJAX работает в обычном JavaScript. Первый шаг – создать переменную, которая будет создавать для вас экземпляр объекта XMLHttpReaquests в JavaScript. Ниже приведен пример: const request = new XMLHttpRequest(); Поскольку мы хотим использовать эти данные в дальнейшем, например, хотим распечатать их на веб-странице, то мы добавим к этому запросу получатель запроса, который сообщит нам, когда наш запрос закончит обрабатываться и получит нужные данные. Как можно понять из самого термина, запросы AJAX выполняются асинхронно. Это значит, что код JavaScript продолжает работать после отправки запроса и не ждет ответа. Прикрепив получатель запросов, мы можем перехватить ответ, когда он будет готов. Сделаем мы это вот так: function requestListener() { console.log(this.responseText); } request.addEventListener("load", requestListener); Выше у нас есть функция, которая выводит ответ на консоль JavaScript, которую мы можем получить из атрибута responseText объекта XMLHttpRequests. Затем мы присоединяем эту функцию к событию load нашего запроса. Следующий шаг – используем этот объект для отправки запроса к серверу с помощью метода open объекта XMLHttpRequests. Метод open принимает два параметра. Первый параметр – это используемый метод запроса. Ниже приведены несколько наиболее распространенных методов: GET: этот метод используется для извлечения данных и является наиболее распространенным. POST: этот метод отправляет данные запрошенному ресурсу и чаще всего используется для создания новых записей или для входа в систему. PUT: этот метод заменяет текущие представления данных измененными, которые были отправлены в запросе. PATCH: этот метод обычно используется для обновления части данных в запрошенном ресурсе. DELETE: этот метод используется для удаления определенного ресурса. Второй параметр, который передается методу open, - это запрашиваемый ресурс. Мы будем использовать страницу с веб-сайта example.org и использовать запрос GET для простого получения данных. Вот так это будет выглядеть: request.open("GET", "http://www.example.org/example.txt"); Последний шаг – фактическая отправка запроса на удаленный ресурс с помощью метода send объекта XMLHttpRequests. Ниже приведен пример: request.send(); Если мы используем метод POST, PUT или какой-либо другой метод, который обновляет ресурс, то этот метод мы вызываем с параметром, содержащем данные, которые мы отправляем: request.send(OUR_DATA_VARIABLE) В нашем случае мы только извлекаем данные, поэтому, как только мы выполним этот код, на консоли нашего веб-браузера выведется содержимое http://example.org/example.txt. Данный пример помогает объяснить то, как работает AJAX, но на самом деле технология AJAX имеет куда более продвинутые функциональные возможности. Для чего нужен AJAX? Что вы должны были вынести из приведенного выше примера, так это то, что все функции кода загружаются на одной странице. Действительно, сначала загрузится веб-страница с нашим кодом JavaScript, затем он выполнится, и после он распечатает результаты запроса. С таким же успехом можно было прикрепить приведенный выше код к функции, которая выполняется при нажатии кнопки. Это бы означало, что каждый раз при нажатии кнопки, будет выполняться код, отправляться запрос, и результаты будут выводиться на консоль без загрузки новой страницы. И эта магическая технология изменила подход к веб-разработке. С появлением AJAX большая часть веб-разработки переместилась на внешний интерфейс приложения – часть, которая работает в браузере. Вы наблюдаете то, как работает AJAX ежедневно и даже не подозреваете об этом. Когда вы заходите на современный веб-сайт, перед вами появляется форма. Вы вводите свои учетные данные и нажимаете кнопку «Войти». Индикатор загрузки может вращаться в течение нескольких минут, но если вы обратите внимание, то заметите, что страница на самом деле никогда не перезагружается. Все, что вы сделали, это просто отправили свое имя пользователя и пароль на сервер с помощью AJAX. Индикатор загрузки нужен только для отвода глаз, пока запрос выполняется, независимо от того, ввели ли вы верные учетные данные или нет. Если ваши учетные данные верны, то ваша домашняя страница загружается, скорее всего, из другого запроса AJAX. Большинство запросов AJAX в JavaScript не загружают целые веб-страницы, как в нашем примере. Данные отправляются и извлекаются в формате JSON, для представления данных используется текстовый формат, а для форматирования этих данных в формате HTML и их печати на странице используется дополнительный код JavaScript. Например, данные, которые отправляются для входа на веб-сайт, в формате JSON будут выглядеть так: { username: "MyUserName", password: "MyPassword" } Как только учетные данные будут проверены, файл JSON, содержащий минимальный объем данных для отображения панели инструментов, будет отправлен обратно в браузер. AJAX в сочетании с JSON не только наделяет современные веб-страницы способностью быстро реагировать на действия пользователей, но и экономит пропускную способность, отправляя только необходимые данные для создания веб-страницы.
img
Зачастую взлом инфраструктуры происходит не с помощью сверхсекретных разработок или специально созданных "организмов" ("вирусов", "червей", "пауков", "дятлов" - нужное подчеркнуть), а из-за стандартных ошибок в настройках и дизайне. Ликвидировать эти недочёты - проще простого, но с такой же простотой они и создают огромные возможности для хакерских атак. Как отмечают специалисты по безопасности, появления подобных упущений в системе встречается настолько часто, что создаётся впечатление, что для таких ошибок существуют спецкурсы. Поэтому задачей данной статьи не является рассказ о самых современных методах защиты - мы просто постараемся заставить читателей задаться вопросом: "А всё ли хорошо в нашей системе безопасности и всё ли мы предусмотрели для того, чтобы конкуренты не смогли воспользоваться нашими данными и разработками и как устранить неполадки в нашей системе?". Локальная учётная запись? Забудьте об этом. Уж сколько раз твердили миру... Слова дедушки Крылова как нельзя лучше характеризуют данную ситуацию - она постоянно возникает и о ней всё время напоминают. Не надо (совсем нельзя) создавать доменной групповой политикой локальные учетные записи на хостах в вашем домене. Говоря военными терминами - уровень опасности красный. Причина самая банальная - данные по записи (в том числе и пароль) хранится в открытом доступе и по умолчанию доступен всем участникам группы. Если кому интересно, то он находится в файле groups.xml, в ресурсе sysvol контроллера домена, но при этом ключ один на всех. Таким образом, любой желающий может скачать файл и путём нехитрых телодвижений стать администратором группы. Думаю о последствиях говорить не надо. Чтобы не получилось подобных конфузов надо просто добавлять только доменные учетные записи в локальные группы на хостах. Права юзеров - на необходимый минимум. Каждая учётная запись имеет свои права для работы в системе и создана для работы конкретной направленности. Поэтому необходимо минимизировать права каждого пользователя системы, так чтобы они подходили под зону его ответственности. Таким образом, снизится риск утраты контроля над записью, и каждый будет знать только свою, необходимую ему информацию. UAC - на максимум! Поставьте на максимум User Account Control (UAC). Его, конечно, можно обойти, но он создаст лишнюю нагрузку для атаки, а время в таких вопросах - играет Вам на руку. Никакого доступа к учетным данным и хэшам MIMIKATZ - это утилита, которая очищает память процесса, ответственного за проверку подлинности Windows (LSASS). Затем она и выдает пароли в виде открытого текста и хеш-коды NTLM, которые злоумышленник может использовать для перемещения по сети. Чтобы защититься от неё, надо соблюдать несколько простых правил: Обновите ваш Active Directory как минимум до 2012 R2; Следите за обновлениями Windows и постоянно их устанавливайте; Помещайте важные учетные записи в группу защищенных пользователей и установите параметр реестра; Не предоставляйте учетной записи больше прав администратора, чем им нужно; Продолжим тему NTLM, поднятую в предыдущем пункте. Его нужно запретить - от слова совсем. Есть такая замечательная штука, как pass-the-hash. Она, как это можно понять из названия, передаёт хеш NTLM на абсолютно любой хостинг, где разрешён NTLM и атакующий всё про вас узнает. Более того, его также можно передавать вместо учетной записи и ее пароля при атаках. Навешайте ярлыков на рабочий стол В прямом смысле - поставьте ярлыки на рабочий стол, которые будут связывать с общими файловыми ресурсами. Тем самым Вы уйдёте от сетевых дисков, а malware почти никогда не воспримет их как сетевые ресурсы. Причина, как всегда, банальная - malware путём перебора букв ищет названия дисков. Конечно, данный совет подходит не всем компаниям, но если возможность подобного похода существует - попробуйте. Отключите скрытые файловые ресурсы! И вновь из-за банальной причины. Они - первоочередная цель действия malware и злоумышленников. Конечно, это не все инструменты защиты инфраструктуры, но каждый случай нужно рассматривать отдельно, как и индивидуальные настройки для каждой инфраструктуры.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59