Поддержка сообщества
Организация сообщества проекта – очень важный аспект разработки и поддержки программы. Это не только хороший способ объединить усилия разработчиков и конечных пользователей для более производительной разработки, но и отличная реклама проекта.
Для продвижения проекта можно использовать:
- Блоги;
- Краткие обзоры, видеообзоры и уроки;
- Рассылку;
- Социальные сети;
- Сотрудничество с аналогичными или смежными проектами и их совместное продвижение.
По мере роста сообщества вы можете предоставить участникам, майнтейнерам и пользователям больше способов для взаимодействия, например:
- Вики-сайты с документацией, поддерживаемые сообществом;
- Форумы для обсуждения функций и возникших проблем;
- Список для электронной рассылки.
Проанализируйте базу пользователей и масштабы вашего проекта (включая количество майнтейнеров проекта и объем доступных ресурсов), затем предложите сообществу новые пути для взаимодействия, попросите всех активных участников оставить отзывы.
Помимо всего вышеперечисленного важно всегда оставаться вежливым, проявлять уважение к тем пользователям, которые заинтересовались вашим проектом и участием в нём. Github
Github
Pagination
Можно создавать запросы для постраничного извлечения сущности:
Page<User> findByName(String name, Pageable pageable);
Ниже пример использования: в запросе передается PageRequest.of(0,2) с номером страницы и количеством элементов на странице:
@Test void t10() { Page<User> userPage = userDao.findByName("John",PageRequest.of(0,2)); Assertions.assertEquals(2, userPage.getTotalElements()); }
Страницы нумеруются с 0.
Генерируемый SQL:
Hibernate: select user0_.id as id1_1_, user0_.name as name2_1_ from user user0_ where user0_.name=? limit ? Hibernate: select count(user0_.id) as col_0_0_ from user user0_ where user0_.name=?
Стоит отметить, что метод постраничного получения всех подряд сущностей уже есть в PagingAndSortingRepository:
public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> { ... Page<T> findAll(Pageable pageable); ... }
License
GitHub — soxoj/maigret: Collect a dossier on a person by username from thousands of sites
Collect a dossier on a person by username from thousands of sites — GitHub — soxoj/maigret: Collect a dossier on a person by username from thousands of sites
GitHubsoxoj
MIT
Sherlock
Sherlock has 4 repositories available. Follow their code on GitHub.
GitHub
MIT
sdushantha — Overview
Creator of Sherlock from the @sherlock-project. sdushantha has 26 repositories available. Follow their code on GitHub.
GitHub
Original Creator of Sherlock Project
Maigret OSINT bot
Check accounts by username on 1500 sites. Based on maigret CLI tool https://t.me/osint_mindset/47
Telegram
Premade telegram bot
By soxoj
Составление документации
Простая и понятная документация (которая в свою очередь обеспечит простоту использования программы) расширит базу пользователей. Со временем кто-нибудь из этих пользователей попробует внести вклад в ваш проект с открытым исходным кодом.
Майнтейнеры проекта, так или иначе, продумывают код, потому составлять документацию можно непосредственно в процессе разработки программы. Некоторые майнтейнеры предпочитают писать документацию заранее. Эта философия создания программы на основе документации предполагает следующий подход: сначала появляется описание функции в документации, а затем согласно описанию разрабатывается код для этой функции.
Помимо прочего, документация должна включать в себя несколько файлов, которые нужно хранить в каталоге верхнего уровня:
- README.md: краткое описание проекта и его целей.
- CONTRIBUTING.md: инструкции для разработчиков, которые хотят принять участие в создании программы.
- Лицензия программы (прочитать о создании лицензии программ с открытым исходным кодом можно здесь).
В целом документация может иметь любую структуру и принимать различные формы, исходя из целевой базы пользователей и масштабов проекта. В зависимости от объема проделанной работы документация может включать в себя такие части:
- Общее руководство для пользователей.
- Мануалы, которые описывают разные варианты использования программы.
- Часто задаваемые вопросы.
- Мануалы по устранению неполадок.
- Примечания к релизам (описание выявленных багов и прочая полезная информация).
- Описание функций, которые вы собираетесь добавить в следующих релизах.
- Видеоуроки.
Конечно, некоторые виды документации подойдут вашему проекту больше, чем другие, но имейте в виду: используя несколько видов документации для описания своего проекта, вы помогаете конечному пользователю лучше понять, как взаимодействовать с вашей программой.
При написании документации важно излагать информацию как можно более просто. Лучше не делать никаких предположений о технических навыках вашей аудитории и ориентироваться на неопытного пользователя
Составляя документацию, переходите от общего к частному: сначала объясните общее назначение и функции программы, а затем подробно опишите каждую функцию.
Также рекомендуется сразу составить документацию на нескольких языках. Сразу же рассмотрите возможность перевода документации на английский – сегодня это международный язык, который может значительно расширить вашу целевую аудиторию. Однако стоит учитывать то, что к английской версии документации будут, скорее всего, обращаться и пользователи, которые не являются носителями английского языка
Потому при переводе документации на английский (впрочем, как и на другие языки) очень важно использовать максимально простые и понятные слова и конструкции
Пишите документацию так, будто вы пишете её для разработчика, которого нужно быстро ввести в курс дела.
Поиск данных об уязвимостях и индикаторов компрометации
7.1 Онлайн-сервисы
-
MITRE CVE — поисковик, база данных и общепринятый классификатор уязвимостей.
-
NIST NVD — поиск по официальной американской правительственной базе данных об уязвимостях.
-
GitHub Advisory Database — база данных уязвимостей, включающая CVE и рекомендации по безопасности.
-
CVEDetails, osv.dev, VulDB, maltiverse — еще ряд источников данных об уязвимостях и индикаторах компрометации.
-
opencve.io — поисковик CVE со встроенными оповещениями о новых угрозах.
-
security.snyk.io и Mend Vulnerability Database, Vulncode-DB — базы данных уязвимостей с открытым исходным кодом.
-
Cloudvulndb — проект, который аккумулирует уязвимости и проблемы безопасности поставщиков облачных услуг.
-
Vulnerability Database — система для поиска информации об актуальных угрозах.
-
Rapid7 — DB — база данных, которая содержит детали более чем 180 тыс. уязвимостей и 4 тыс. эксплойтов. Все эксплойты включены в Metasploit.
-
Exploit DB — CVE-совместимый архив общедоступных эксплойтов и уязвимого программного обеспечения.
-
sploitus — поисковик по эксплойтам и хакерским инструментам.
Сортировка: orderBy и Sort
Найти пользователей, что имя содержит заданную строку и упорядочить результат по имени:
List<User> findByNameContainingOrderByNameAsc(String str);
Или передать в параметре объект Sort:
List<User> findByNameContaining(String str, Sort sort);
Пример использования второго метода:
@Test void t12() { Sort sort = Sort.by(Sort.Direction.ASC, "name"); List<User> users= userDao.findByNameContaining("e", sort); Assertions.assertEquals(2,users.size()); Assertions.assertEquals("Artem",users.get(0).getName()); }
Оба метода генерируют одинаковый SQL:
select user0_.id as id1_1_, user0_.name as name2_1_ from user user0_ where user0_.name like ? escape ? order by user0_.name asc
Что, если я хочу изменить лицензию своего проекта?
Большинству проектов не потребуется менять лицензии. Но иногда обстоятельства меняются.
Например, по мере роста вашего проекта он добавляет зависимости или пользователей, или ваша компания меняет стратегии, для любой из которых может потребоваться другая лицензия. Кроме того, если вы пренебрегали лицензированием своего проекта с самого начала, добавление лицензии фактически аналогично изменению лицензий. При добавлении или изменении лицензии на проект необходимо учитывать три основных момента:
Это сложно. Определение совместимости и соответствия лицензий, а также обладателей авторских прав может очень быстро стать сложным и запутанным. Переход на новую, но совместимую лицензию для новых выпусков и дополнений отличается от перелицензирования всех существующих дополнений. Привлекайте свою команду юристов при первом намеке на желание сменить лицензию. Даже если у вас есть или вы можете получить разрешение от правообладателей вашего проекта на изменение лицензии, учитывайте влияние этого изменения на других пользователей и участников вашего проекта. Думайте о смене лицензии как об «управленческом событии» для вашего проекта, которое, скорее всего, пройдет гладко при четком общении и консультациях с заинтересованными сторонами вашего проекта. Еще одна причина выбрать и использовать соответствующую лицензию для вашего проекта с самого начала!
Существующая лицензия вашего проекта. Если существующая лицензия вашего проекта совместима с лицензией, на которую вы хотите перейти, вы можете просто начать использовать новую лицензию. Это потому, что если лицензия A совместима с лицензией B, вы будете соблюдать условия A, соблюдая условия B (но не обязательно наоборот). Поэтому, если вы в настоящее время используете разрешительную лицензию (например, MIT), вы можете перейти на лицензию с дополнительными условиями, при условии, что вы сохраняете копию лицензии MIT и любые связанные уведомления об авторских правах (т.е. продолжаете соблюдать минимальные условия лицензии MIT). Но если ваша текущая лицензия не разрешающая (например, авторское лево или у вас нет лицензии) и вы не являетесь единственным владельцем авторских прав, вы не можете просто изменить лицензию вашего проекта на MIT. По сути, с разрешающей лицензией правообладатели проекта заранее дали разрешение на изменение лицензий.
Существующие правообладатели вашего проекта. Если вы являетесь единственным участником своего проекта, то вы или ваша компания являетесь единственным правообладателем проекта. Вы можете добавить или изменить любую лицензию, которую захотите вы или ваша компания. В противном случае могут быть другие правообладатели, с которыми вам потребуется согласие для изменения лицензий. Кто они? Люди, у которых есть коммиты в вашем проекте, — хорошее место для начала. Но в некоторых случаях авторские права принадлежат работодателям этих людей. В некоторых случаях люди будут вносить только минимальный вклад, но не существует жесткого правила, согласно которому вклады с использованием определенного количества строк кода не подлежат авторскому праву. Что делать? Это зависит. Для относительно небольшого и молодого проекта может оказаться целесообразным убедить всех существующих участников согласиться на изменение лицензии в ишью или пул-реквесте. Для крупных и долгоживущих проектов вам, возможно, придется искать множество участников и даже их наследников. Mozilla потребовались годы (2001-2006), чтобы перелицензировать Firefox, Thunderbird и сопутствующее программное обеспечение.
В качестве альтернативы вы можете попросить участников заранее согласиться (посредством дополнительного соглашения с участниками — см. Ниже) на определенные изменения лицензии при определенных условиях, помимо тех, которые разрешены вашей существующей лицензией с открытым исходным кодом. Это немного меняет сложность изменения лицензий. Вам заранее понадобится дополнительная помощь юристов, и вы все равно захотите четко общаться с заинтересованными сторонами вашего проекта при изменении лицензии.
Поиск по никнейму
WhatsMyName — это не просто сервис, а целый комбайн, который ищет по 280 сервисам!
Здесь можно сортировать сервисы по категориям, а еще есть возможность экспортировать результат поиска (URL найденных профилей) в нескольких форматах.
Сервис Usersearch.org предоставляет поиск не только по популярным соцсетям, но и по тематическим форумам и сайтам знакомств.
SuIP.biz — постоянно обновляемая и обширная база сервисов с удобной выдачей. Время проверки — где‑то одна‑две минуты. Минус — деления на категории нет.
По завершении поиска можно скачать отчет в формате PDF.
Instant Username Search — сервис с быстрой проверкой по популярным и не очень сервисам. У него в базе встречаются интересные тематические сайты, вроде MyAnimeList и Last.fm.
Checkuser ищет по небольшому списку сайтов, а кроме того, позволяет проверять занятость доменного имени.
На сам поиск уходит примерно минута. Единый список ссылок из результатов получить нельзя.
Namechekup использует обширный список сервисов для проверки, которая, кстати, не занимает много времени.
Получить все ссылки разом здесь тоже нельзя.
Список веб‑сервисов у Namecheckr небольшой, но и проверка очень быстрая. Сами сервисы по большей части популярные и не очень соцсети. Проверяет и некоторые домены.
Отдельно существует сервис‑двойник под незамысловатым названием Namech_k. Он проверят упоминание конкретного юзернейма по десяткам сайтов. К тому же у сервиса есть свой API, чтобы можно было вызывать из скриптов.
В репозитории нашего соотечественника (и автора статьи в «Хакере») Soxoj есть большой список проверок, которые могут быть полезны для интернет‑розыска, и сервисов поиска по никнейму — спасибо ему! Здесь собраны такие утилиты, как Sherlock, Maigret, Snoop, sherlock-go и Investigo, каждая из которых зарекомендовала себя как неплохой инструмент для поиска и сбора открытых данных.
Отдельно хотелось бы выделить и упомянуть утилиту Maigret.
Она позволяет собирать досье на человека по имени пользователя, проверяя наличие учетных записей на огромном количестве сайтов (более 2300) и собирая всю информацию с доступных страниц. Не использует никаких ключей API. Это, кстати, форк другой OSINT-утилиты — Sherlock. Обрати внимание, что по умолчанию поиск запускается не по всем сайтам, а только по 500 самых популярных.
info
Читай также: «Пробей меня полностью! Кто, как и за сколько пробивает персональные данные в России», «Боты атакуют. Тестируем телеграм‑боты для поиска персональных данных»
Предыстория
Программисты «Центра исследований легитимности и политического протеста», разработав некий уникальный сервис с названием «Криптоскан», дали возможность правоохранительным органам установить личность абонента, которые перед этим запрашивают информацию у операторов связи. Эксперты утверждают, что новая технология может быть полезна в поиске преступников:
Как описывают специалисты, суть нового сервиса заключается в том, что программа направляет запрос, содержащий юзернейм, в Telegram, и далее приложение выдаёт следуюшие данные пользователя — ID и номер телефона, фамилию и имя.
Для уверенности в работоспособности системы журналисты «Известий» попросили показать работу «Криптоскан» в действии на одном из своих редакторов. Утверждается, что номер телефона совпал, а имя и фамилия — нет, так как в мессенджере пользователь может придумать себе любой псевдоним, не указывая достоверные данные.
Полезные советы
Совет №1
Юзернейм является отличной альтернативой поиска человека по Телеграму. Такое решение позволит пользователю скрыть свой телефон и предоставлять только логин для начала переписки в мессенджере.
Чтобы настроить список людей, которые могут определить номер, нужно открыть боковое меню, перейти в «Настройки», «Конфиденциальность». В разделе «Номер телефона» выбрать, кто может его видеть и кому доступен поиск по номеру. Можно добавить некоторых пользователей в список исключений.
Совет №2
Пользователи, которые найдут человека по юзернейму в системе глобального поиска или получат уникальную ссылку, смогут сразу же писать ему. Если такой вариант не подходит, создавать имя пользователя не стоит.
Совет №3
Для ведения социальных сетей лучше использовать один и тот же юзернейм. Он должен быть простым, коротким и запоминающимся. Если придумать оригинальное имя пользователя не удается, можно обратиться за помощью к специальным сайтам. Список популярных сервисов, где можно сгенерировать уникальный логин:
Snoop Project один из самых перспективных OSINT-инструментов по поиску никнеймов.
Is your life slideshow? Ask Snoop.Snoop project is developed without taking into account the opinions of the NSA and their friends,that is, it is available to the average user.
• English readme
Snoop — это исследовательская работа (собственная база данных/закрытые багбаунти)в области поиска и обработки публичных данных в сети интернет.По части специализированного поиска Snoop способен конкурировать с традиционными поисковыми системами.
Сравнение индексаций БД-никнеймов подобных инструментов:
Платформа | Поддержка |
---|---|
GNU/Linux | |
Windows 7/10 (32/64) | |
Android (Termux) | |
macOS | ️ |
IOS | |
WSL |
Модель
Класс User:
@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private long id; private String name; @OneToMany(mappedBy = "user") private Set<Account> accounts; // getters/setters/constructors }
У пользователя может быть несколько счетов: они хранятся в коллекции accounts.
Класс Account:
@Entity public class Account { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private long id; private String name; private long amount; @ManyToOne private User user; // getters/setters/constructors }
Заполним таблицы данными.
Данные
Данные находятся в файле data.sql. Скрипт data.sql (и schema.sql) запускается благодаря настройке в файле application.properties:
spring.datasource.initialization-mode=always
Итак, с помощью файла data.sql добавим 5 пользователей (два с именем John). Они получат последовательные автоматически сгенерированные id с 1 по 5.
insert into user (name) values ('Ivan'); insert into user (name) values ('John'); insert into user (name) values ('Petr'); insert into user (name) values ('John'); insert into user (name) values ('Artem');
Только для пользователей с id=1 и id=2 добавим счета:
insert into account (name, amount, user_id) values ('ac1Iv', 10, 1); insert into account (name, amount, user_id) values ('ac2Iv', 11, 1); insert into account (name, amount, user_id) values ('ac3Iv', 120, 1); insert into account (name, amount, user_id) values ('ac4Iv', 0, 1); insert into account (name, amount, user_id) values ('ac1J', 50, 2); insert into account (name, amount, user_id) values ('ac2J', 20, 2); insert into account (name, amount, user_id) values ('ac3J', 100, 2);
Набор цифровых профилей
У каждого человека разные потребности по части приватности и набора цифровых профилей. Например, при наличии семьи, двух работ и широкого круга друзей он может выглядеть так:
Для рабочего и личного цифрового профиля можно завести отдельные физические устройства для доступа в интернет (ноутбуки, смартфоны), чтобы не смешивать разные куки и другие персональные данные на одном устройстве. Некоторые корпорации косвенно поддерживают такую изоляцию, выдавая сотрудникам корпоративные ноутбуки и смартфоны.
На ПК изоляцию профилей удобно выполнять через разные рабочие столы или отдельные виртуальные машины.
Telegram и другие мессенджеры тоже поддерживают быстрое переключение между разными аккаунтами.
Разумеется, в анонимном цифровом профиле для каждого сайта/сервиса желательно использовать случайный юзернейм.
Загрузка исходного кода
Загрузка репозитория с GitHub занимает всего два клика.
В верхней части каждого репозитория, под строкой, отображающей общее количество коммитов, веток, пакетов, выпусков и участников, вы увидите зеленую кнопку с надписью Клонировать или загрузить. Нажмите на нее и выберите Скачать ZIP.
По умолчанию начнется загрузка главной ветви текущего репозитория в виде файла ZIP. По завершении все, что вам нужно сделать, это извлечь архив в локальную папку на вашем компьютере. Затем, используя текстовый редактор, вы можете открыть любой из файлов репозитория гораздо быстрее, не требуя браузера.
Если вы не опытный кодер, GitHub может сначала немного запутать. Если вы просто думаете об этом как об открытом каталоге исходного кода, с readme на верхнем уровне, это не слишком пугающе. Просмотр исходного кода с помощью GitHub прост, как локально, так и через его веб-интерфейс.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
О безопасности Open Source
Организация Linux Foundation совместно с GitHub, Google, IBM, JPMorgan Chase, Microsoft, NCC Group, OWASP Foundation и Red Hat учредила новый совместный проект OpenSSF (Open Source Security Foundation), целью которого является повышение безопасности ПО с открытым кодом. OpenSSF продолжает развитие инициатив Core Infrastructure Initiative и Open Source Security Coalition и включает в свои функции:
- раскрытие информации об уязвимостях и распространение исправлений;
- разработку инструментов для обеспечения безопасности;
- разработку и публикацию лучших практик по ИБ при организации разработки;
- выявление угроз в открытом ПО, аудит и усиление ИБ критически важных открытых проектов;
- организацию идентификации и подтверждения личности разработчиков для исключения внесения нелегитимных изменений в код.
Это — новый проект, и все процессы пока находятся в инкубационном статусе. К проекту уже присоединились GitLab, HackerOne, Intel, Uber, VMware, ElevenPaths, Okta, Purdue, SAFECode, StackHawk и Trail of Bits.
Linux Foundation’s Core Infrastructure Initiative (CII) и Гарвардская лаборатория инноваций (Laboratory for Innovation Science at Harvard, LISH) в начале 2020 года выпустили вторую перепись важного ПО с открытым кодом (Census II of Open Source Software), в которой исследуются наиболее важные и часто используемые свободно распространяемые пакеты по вопросам ИБ. В том числе пропагандируется подход на основе гигиены доставки компонентов в свой код и их использования (Supply Chain Hygiene), которая подразумевает следующие принципы:
- использовать меньшее разнообразие компонентов;
- использовать только высококачественные компоненты, что означает отказ в крупных проектах от «сырых» компонентов в пользу стабильных, даже если последние уступают по функциональности;
- постоянно контролировать и информировать, какие компоненты используются и где.
Также существует ряд проектов, занимающихся регулярным исследованием уровня защищённости открытого ПО. Например, проект Coverity в сотрудничестве со Стэнфордским университетом, а ныне анализатор кода компании Synopsys — яркий пример предприятия по систематическим исследованиям Open Source и один из лидеров в данном сегменте. Компания проводит автоматическое обнаружение дефектов и критических типов ошибок в открытом ПО, уровень качества и безопасности в их идеологии измеряется ступенями. Ступени не имеют окончательного значения и могут изменяться по мере того, как Coverity выпускает новые инструменты. Ранги основаны на прогрессе исправления проблем, обнаруженных по результатам анализа, и степени сотрудничества разработчика ПО с Coverity. Ранги начинаются со ступени 0 и в настоящее время идут до ступени 2:
- Ступень 0. Проект был проанализирован инфраструктурой Coverity Scan, но ни один представитель сообщества ПО с открытым исходным кодом не сообщил о результатах.
- Ступень 1. Происходит сотрудничество между Coverity и командой разработчиков. ПО анализируется с помощью подмножества функций сканирования, чтобы не перегружать команду разработчиков.
- Ступень 2. Было проанализировано 11 проектов, получивших статус «Rung 2», в результате чего в первый год сканирования было достигнуто нулевое значение количества дефектов. Эти проекты — AMANDA, ntp, OpenPAM, OpenVPN, Overdose, Perl, PHP, Postfix, Python, Samba и tcl.
Ресурс Coverity открыт, и с его помощью можно проверить необходимый пакет Open Source на наличие опасных уязвимостей и уровень поддержки проекта разработчиками. Пример анализа для одного из пакетов bind приведён на рис. 7.
Рисунок 7. Анализ ПО bind через проект Synopsys Coverity
Есть несколько аналогичных проектов, занимающихся регулярным тестированием приложений и библиотек Open Source — например, PVS-Studio. Для веб-приложений существует сообщество Open Web Application Security Project (OWASP) — открытый проект по обеспечению их безопасности.
Учетная запись для резервного копирования
Для выполнения резервного копирования лучше всего подключаться к базе с минимальными привилегиями.
Сначала создаем роль, которую будем использовать для выполнения резервного копирования:
=# CREATE USER bkpuser WITH PASSWORD ‘bkppasswd’;
* мы создадим учетную запись bkpuser с паролем bkppasswd.
Предоставляем права на подключения к базе
=# GRANT CONNECT ON DATABASE database TO bkpuser;
* в данном примере к базе database.
Подключаемся к базе (в нашем примере database):
=# \c database
Даем права на все последовательности в схеме:
=# GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO bkpuser;
* мы дали права для схемы public. Это схема является схемой по умолчанию, но в вашем случае она может быть другой. В таком случае, подставляем свое значение.
Поиск по электронной почте и логинам
3.1 Онлайн-сервисы
-
Snusbase — индексирует информацию из утечек и дает доступ к поиску по скомпрометированным адресам электронной почты, логинам, именам, IP-адресам, телефонам и хешам паролей.
-
have i been pwned? — поисковик по утечкам данных. Позволяет проверить, в каких инцидентах участвовал конкретный адрес электронной почты.
-
whatsmyname — поиск учетных записей в различных сервисах по логину. В основе сервиса лежит общедоступный JSON.
-
User Searcher — бесплатный инструмент, который поможет найти пользователя по логину на более чем 2 тыс. веб-сайтов.
-
CheckUserNames, , Namecheckr, peekyou, usersearch — онлайн-сервисы для поиска аккаунтов пользователя по логину.
Примеры использования Get-ADUser
Давайте покажем ещё несколько полезных примеров команд для запросов пользователей Active Directory с помощью различных фильтров. Вы можете объединить их, чтобы получить необходимый список пользовательских объектов AD:
Отобразить пользователей AD, имя которых начинается с Joe:
Get-ADUser -Filter {name -like "Joe*"}
Вы можете использовать PowerShell для расчёта общего количества учётных записей пользователей в Active Directory:
Get-ADUser -Filter {SamAccountName -like "*"} | Measure-Object
Вывод списка пользователей и их свойств, размещённых в определённом организационном подразделении (контейнере) в данном случае это OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM:
Get-ADUser -Filter * -SearchBase "OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM"
Найти отключённые учётные записи пользователей Active Directory:
Get-ADUser -Filter {Enabled -eq "False"} | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table
Вы можете проверить дату создания учётной записи пользователя Active Directory с помощью команды:
Get-ADUser -Filter * -Properties Name,WhenCreated | Select name,whenCreated
Вы можете получить список недавно добавленных пользователей Active Directory, созданных за последние 24 часа:
$lastday = ((Get-Date).AddDays(-1)) Get-ADUser -filter {(whencreated -ge $lastday)}
Вывести список учётных записей с просроченным паролем (вы можете настроить параметры истечения срока действия пароля в политике паролей домена):
Get-ADUser -Filter {Enabled -eq $True} -Properties name,passwordExpired | Where-Object {$_.PasswordExpired}| Select-Object name,passwordexpired
Командлеты Get-ADUser и Add-ADGroupMember можно использовать для создания динамических групп пользователей AD (в зависимости от города, должности, отдела и прочего).
Задача: для списка учётных записей, которые хранятся в текстовом файле (по одной учётной записи в строке), вам необходимо получить название компании пользователя из AD и сохранить его в файл CSV (вы можете легко импортировать этот файл в Excel).
Import-Csv c:\ps\users_list.csv | ForEach { Get-ADUser -Identity $_.user -Properties Name,Company | Select-Object Name,Company | Export-CSV c:\ps\users_ad_list.csv -Append -Encoding UTF8 }
Пользователи, которые не меняли свои пароли в течение последних 90 дней:
$90_Days = (Get-Date).adddays(-90) Get-ADUser -Filter {(passwordlastset -le $90_days)}
Чтобы получить фотографию пользователя из Active Directory и сохранить её в файле jpg, выполните следующие команды:
$usr = Get-ADUser sjoe -Properties thumbnailPhoto $usr.thumbnailPhoto | Set-Content sjoe.jpg -Encoding byte
Чтобы получить список групп AD, членом которых является учётная запись пользователя:
Get-AdUser MiAl -Properties memberof | Select-Object memberof -ExpandProperty memberof
Перечислить пользователей из OU, которые являются членами определённой группы безопасности домена:
Get-ADUser -SearchBase 'OU=Rome,OU=Italy,DC=hackware,DC=ru' -Filter * -Properties memberof | Where-Object {($_.memberof -like "*CEO*")}
Перечислить компьютеры домена, на которых пользователю разрешён вход.
Get-ADUser MiAl -Properties LogonWorkstations | Format-List Name,LogonWorkstations
Чтобы искать компьютеры и фильтровать компьютеры по их свойствам в Active Directory, вы можете использовать другой командлет – Get-ADComputer.
Поддержка новых разработчиков
Чем больше вы поощряете участие и внесение вклада в ваш проект, тем больше разработчиков захочет к нему присоединиться. Чтобы новички понимали, с чего начать, добавьте в документацию файл CONTRIBUTING.md и сошлитесь на этот файл в README.md.
Файл CONTRIBUTING.md должен содержать всю необходимую информацию, которую должен знать разработчик, желающий внести свой вклад в проект. Это может быть пошаговое руководство, контрольный список для разработчиков, в общем – любой удобный формат, позволяющий объяснить разработчику, как именно нужно писать код и создавать pull-запросы.
Кроме документации по участию в разработке вы должны предоставить пользователям простой, понятный и чистый код с хорошими комментариями – это поможет разработчикам быстро влиться в работу.
Также рекомендуется поддерживать список авторов и разработчиков проекта. Вы можете предложить разработчикам вносить свои имена в список самостоятельно (даже если пользователь просто поправил опечатки в документации – это достойно похвалы и внесения его имени в список).
Телеграм боты для пробива
- Глаз Бога — этот бот уже стал легендой. Если в этом боте нет инфы, то 70% что в других ее тоже нет. Сервис платный, но покажет часть результата.
- Info Baza –– украинских аналог Глаза Бога. Базы содержат только жителей Украины!
- Поиск по ID –– поисковик информации данных о людях по ID Telegram и Вконтакте
- Quick OSINT — может найти комментарии пользователя, проанализировать его друзей и фотографии
- Insight –– Бот выдает интересы пользователей по телеграм аккаунту. Вывод делает на основе базы каналов и чатов на которые подписан пользователь. Если честно без понятия откуда у них это инфа.
- Username_to_id_bot — показывает ID акканта/канала/чата в телеграм.
- Поиск по номеру – поисковая система поиска номеров телефона и других данных по открытым источникам.
- BTC Searcher — производит поиск данных о владельце биткоин кошелька.
- UniversalSearchBot — выдает ссылки на гугл аккаунты, вебархивы, карты сбербанка, номер телефона, аккаунты яндекса.
- PasswordSearchBot — показывает пароли по email адресу.
- Iptools_robot — поиск информации об ip адресе, владельце домена и многое другое. Больше 30 вариантов поиска.
- Neuroperson_bot — с помощью нейросетей бот генерирует фото несуществующего человека и его личные данные, такие как: ФИО, банковские карты, номер телефона, домашний адрес с индексом и т.д.
- MotherSearchBot –– поисковик по телеграму.
- Egrul_bot — присылает информацию о российских компаниях и индивидуальных предпринимателях.
Как всё это совместить
Вот несколько простых правил, которые позволят вам работать, не опасаясь неприятностей с законом:
Пройдите хотя бы минимальный ликбез по авторскому праву
Особое внимание уделите вопросам корректного заимствования готового кода.
Если используете чужой открытый код под разными лицензиями, внимательно прочитайте их условия и проверьте совместимость.
Если планируете модифицировать и распространять чужой открытый код, убедитесь в правомерности своих действий.
Если ваш проект будет проприетарным, проверьте, не нарушает ли это условия свободной лицензии чужого открытого кода.
Если выпускаете проект с открытым кодом, работодатель должен знать об этом и дать своё согласие. Иначе вы рискуете, потому что претензии по поводу нарушенных авторских прав в конечном итоге предъявят вам.
Также проект может содержать конфиденциальную информацию, сведения, составляющие коммерческую тайну. Это потребует отдельного согласования с юристами. Плюс ко всему нужно учитывать, что не все свободные лицензии совместимы между собой.
Поиск по номеру телефона
SpravkaRU.Net — весьма объемный телефонный справочник, который может искать также по ФИО.
К сожалению, домашними телефонами уже мало кто пользуется, а телефонные справочники по большей части ориентированы именно на них. Поэтому объемы информации не такие уж впечатляющие.
Microsoft позволяет проверять привязку номера к аккаунту на сайте account.live.com. Этим можно пользоваться!
Помимо этого, утилита может генерировать список номеров и перебирать сервисы на наличие номера телефона (где он указан в профиле).
Бот last4mailbot найдет последние четыре цифры номера телефона клиента Сбербанка.
Простейший пример — поиск пользователей по имени — find
Чтобы декларировать методы, необходимо расширить CrudRepository (или JpaRepository).
Сначала найдем пользователей по имени:
public interface UserRepository extends JpaRepository<User, Long> { List<User> findByName(String str); // другие методы }
В консоли отобразится запрос, который сгенерировал Spring Data:
select user0_.id as id1_1_, user0_.name as name2_1_ from user user0_ where user0_.name=?
Сгенерированный SQL отображается благодаря настройке:
spring.jpa.show-sql=true
Помимо find…, есть также ключевые слова get…query…, read… — все они имеют один и тот же смысл.
Можно также писать findAll…, findUsers.., findUser..
То есть наш метод можно записать любым из возможных вариантов:
List<User> getByName(String name); List<User> queryByName(String name); List<User> readByName(String name); List<User> findAllByName(String name); List<User> findUserByName(String name); List<User> findUsersByName(String name);
Вышеперечисленные методы генерируют тот же самый запрос.