В примерах, приведённых ниже, подробно рассматриваются JavaScript и Apps Script методы поиска элементов массивов : find(), findIndex(), indexOf(), lastIndexOf(), includes(), every() и some().
Методы findIndex(), indexOf() и lastIndexOf() позволяют найти индекс массива, удовлетворяющий заданному условию, а метод find() позволяет найти его значение.
Метод includes() удобен для использования в операторе if , поскольку возвращает true, если элемент найден, и false, если нет.
Метод every() проверяет соответствие ВСЕХ элементов массива указанному в callback функции условию, а метод some() проверяет, удовлетворяет ли этому условию ХОТЯ БЫ ОДИН элемент массива.
const arr = [1, 2, 3, 4, 5, 3]; // find() returns the VALUE of the FIRST item satisfies condition of the callback function // OR return let valueGteater3 = arr.find(item => item > 3); console.log(valueGteater3); // 4 let valueGteater5 = arr.find(item => item > 5); console.log(valueGteater5); // undefined // findIndex() returns the INDEX of the FIRST item satisfies condition of the callback function // OR return let indexItemGteater3 = arr.findIndex(item => item > 3); console.log(valueGteater3); // 3 let indexItemGteater5 = arr.findIndex(item => item > 5); console.log(valueGteater5); // -1 // variant for not first item let notFirstItem = arr.find((item, index) => < if (item >3 index > 3) return true; >); console.log(notFirstItem); // 5 // indexOf() returns the INDEX of the FIRST item is equal the specified value // OR return let valueEqual3 = arr.indexOf(3); console.log(valueEqual3); // 2 let valueEqual3Next = arr.indexOf(3, 3); console.log(valueEqual3Next); // 5 let valueEqual1 = arr.indexOf(1, 3); console.log(valueEqual1); // -1 // lastIndexOf() returns the INDEX of the LAST item is equal the specified value // OR return let valueEqual3Last = arr.lastIndexOf(3); console.log(valueEqual3Last); // 5 let valueEqual3NextLast = arr.lastIndexOf(3, 4); console.log(valueEqual3NextLast); // 2 let valueEqual5Last = arr.lastIndexOf(5, 3); console.log(valueEqual5Last); // -1 // const arr = [1, 2, 3, 4, 5, 3]; // includes() returns TRUE is element is icluded in the array, and FALSE is not let isIncludes3 = arr.includes(3); console.log(isIncludes3); // true let isIncludes6 = arr.includes(6); console.log(isIncludes6); // false // every() returns TRUE if ALL elements satisfy the condition, and FALSE is not let allPositive = arr.every(item => item > 0); console.log(allPositive); // true let moreThen1 = arr.every(item => item > 1); console.log(moreThen1); // false // some() returns TRUE if AT LEAST ONE element satisfy the condition, and FALSE is not let moreThen4 = arr.some(item => item > 4); console.log(moreThen4); // true let moreThen5 = arr.some(item => item > 5); console.log(moreThen5); // false
Более продробную информацию вы сможете найти в этом видео:
Google Apps Script.Первое знакомство и создание своей функции.Скрипты Google Sheets Урок 1.
Источник: it4each.com
Фишинг при помощи Google Apps Script
Для того чтобы фишинговая ссылка не была заблокирована на почтовом сервере, мошенники применяют редиректы через Google Apps Script.
Roman Dedenok
- 27 июля 2021
- Для антифишингового решения на почтовом сервере письмо выглядит как нормальное послание с гиперссылкой на легитимный сайт Google с нормальной репутацией.
- Такая схема позволяет эксплуатировать фишинговый сайт дольше, поскольку его URL не светится в письмах, а следовательно, не виден большей части защитных решений.
- Схема получает определенную гибкость — при необходимости скрипт можно поменять (на случай, если сайт все-таки будет забанен вендорами защитных решений), а кроме того, скрипт позволяет экспериментировать с доставкой контента (например, посылать жертву на разные языковые варианты сайта в зависимости от региона).
- Письмо пришло вроде бы от Microsoft Outlook, однако почтовый адрес отправителя имеет какой-то совершенно посторонний домен. В легитимном письме так не бывает — нотификация о переполнении ящика приходит от сервера exchange, работающего в инфраструктуре вашей компании. Плюс, если приглядеться, то заметно, что имя отправителя Microsoft Outlook написано без пробела и с символом 0 вместо буквы O.
- Самое главное: если подвести мышку к ссылке Fix this in storage settings, то вы увидите реальный адрес:
- Сохраните проект.
- Выберите вкладку для Code.gs .
- Убедитесь, что функция testSchemas выбрана в раскрывающемся меню «Выбор Select function .
- Нажмите Run в среде разработки Apps Script.
Чтобы выманить у сотрудников компаний учетные данные от корпоративной почты, злоумышленникам в первую очередь нужно обмануть антифишинговые решения на почтовых серверах. Нередко для этого они пытаются использовать легитимные веб-сервисы: те, как правило, имеют заслуживающую доверия репутацию и не вызывают подозрений у почтовых фильтров. В последнее время в качестве одного из таких сервисов мошенники все чаще используют Google Apps Script.
Что такое Apps Script и как его используют злоумышленники
Apps Script — скриптовая платформа Google, построенная на базе Java Script. По задумке авторов, она служит для автоматизации задач как в продуктах компании (например, аддонов для Google Docs), так и в сторонних приложениях. По большому счету, это сервис, позволяющий создавать скрипты и исполнять их в инфраструктуре Google.
В почтовом фишинге этот сервис используют, по сути, для редиректа. Вместо того, чтобы вставлять непосредственно URL вредоносного сайта, злоумышленники зашивают в текст ссылку на скрипт. Таким образом они решают сразу несколько задач:
Пример использования уловки с Google Apps Script
Все, что нужно злоумышленникам — заставить пользователя кликнуть по ссылке. В последнее время чаще всего в качестве повода используют «переполнение почтового ящика». В теории выглядит логично — место, отведенное под почтовый ящик жертвы, закончилось, и нужно либо удалять старые письма, либо запрашивать расширение квоты.
Типичное фишинговое письмо, использующее уловку с переполненным ящиком
На практике злоумышленники чаще всего действуют достаточно небрежно и оставляют явные признаки мошенничества, которые легко может заметить даже человек, не знакомый с реальным форматом нотификаций от почтового клиента:
Ссылка на Google Apps Script в письме
Легитимная нотификация о скором переполнении почтового ящика
Как не попасться на крючок
Как показывает практика, злоумышленники могут прислать фишинговое письмо, в котором не будет как таковой фишинговой ссылки. Поэтому для надежной защиты от уловок мошенников необходимо иметь антифишинговое решение и на уровне почтового сервера, и на компьютерах пользователей.
Кроме того, имеет смысл поддерживать уровень осведомленности сотрудников о современных киберугрозах и фишинговых уловках при помощи онлайновых тренингов.
Источник: www.kaspersky.ru
Краткое руководство по скриптам приложений
В этой статье показано, как использовать Apps Script , чтобы отправить себе электронное письмо со схемами, чтобы протестировать разметку электронной почты.
Создание проекта
Посетите script.google.com . Если вы впервые посещаете script.google.com , вы будете перенаправлены на информационную страницу. Щелкните Start Scripting , чтобы перейти к редактору сценариев. В редакторе сценариев создайте сценарий для пустого проекта .
Замените код в Code.gs следующим:
gmail/разметка/Code.gs
/** * Send an email with schemas in order to test email markup. */ function testSchemas() < try < const htmlBody = HtmlService.createHtmlOutputFromFile(‘mail_template’).getContent(); MailApp.sendEmail(< to: Session.getActiveUser().getEmail(), subject: ‘Test Email markup — ‘ + new Date(), htmlBody: htmlBody >); > catch (err) < console.log(err.message); >>
Выберите «Файл» > «Создать» > «Html-файл» , чтобы создать новый HTML-файл. Назовите файл mail_template , чтобы он соответствовал параметру в JavaScript выше. Замените содержимое HTML-файла следующим:
gmail/разметка/mail_template.html
Тестирование скрипта
Чтобы протестировать скрипт:
При первом запуске скрипта вам будет предложено предоставить авторизацию, после чего вам следует запустить его повторно. После запуска скрипта проверьте свой почтовый ящик на наличие письма, отправленного от вас с помощью кнопки «Перейти к действию» , как показано на следующем снимке экрана:
Как работает скрипт?
Функция testSchemas считывает HTML-содержимое из файла с именем mail_template.html и отправляет это содержимое в виде электронного письма пользователю, прошедшему проверку подлинности. Как объясняется в разделе Регистрация в Google , все схемы, которые вы отправляете себе, будут отображаться в Gmail, поэтому электронное письмо, отправленное сценарием, можно использовать для игнорирования требований регистрации в целях тестирования.
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2023-04-14 UTC.
Источник: developers.google.cn