Мало кто заметил новый оператор в Python3.8 😅
Вокруг него появилось много споров и мифов.
Постараюсь в ближайшем видео показать его основные
возможности, чтобы прояснить ситуацию.
Также рассмотрим частые ошибки, которые допускают при использовании walrus operator. 🙂
Для тех кто хочет заранее посмотреть доки, ловите ссылку👇
https://peps.python.org/pep-0572/
Вокруг него появилось много споров и мифов.
Постараюсь в ближайшем видео показать его основные
возможности, чтобы прояснить ситуацию.
Также рассмотрим частые ошибки, которые допускают при использовании walrus operator. 🙂
Для тех кто хочет заранее посмотреть доки, ловите ссылку👇
https://peps.python.org/pep-0572/
в свете последних событий 😁
Если кто не понял шутку, вам сюда:
https://www.youtube.com/watch?v=FmXxrThs-zM
Если кто не понял шутку, вам сюда:
https://www.youtube.com/watch?v=FmXxrThs-zM
💎 Обходим капчу тридцатью строками кода
Распознавание простой текстовой капчи используя библиотеку PIL Python
Читать статью
Распознавание простой текстовой капчи используя библиотеку PIL Python
Читать статью
⚙️ Ускорение Python через C/C++ (Технология Boost)
Все важные компоненты также можно перенести в C++
библиотеки. Пример реализации:
https://telegra.ph/Uskorenie-Python-cherez-CC-Boost-08-06
Все важные компоненты также можно перенести в C++
библиотеки. Пример реализации:
https://telegra.ph/Uskorenie-Python-cherez-CC-Boost-08-06
⚙️ Уязвимости Android и iOS. Какая система безопасней?
Сравнение систем со стороны безопасности
и количества найденных уязвимостей
Читать статью
Сравнение систем со стороны безопасности
и количества найденных уязвимостей
Читать статью
source.zip
9.9 KB
Добавляю также исходники, возможно кому-то будет интересно самому подключить .so файлы 😎
Принципы SOLID + Примеры с картинками
Эти пять правил разработки ПО задают траекторию, по которой нужно следовать, когда пишешь программы, чтобы их проще было масштабировать и поддерживать.
SOLID:
S – Single Responsibility
O – Open-Closed
L – Liskov Substitution
I – Interface Segregation
D – Dependency Inversion
Читать статью
Эти пять правил разработки ПО задают траекторию, по которой нужно следовать, когда пишешь программы, чтобы их проще было масштабировать и поддерживать.
SOLID:
S – Single Responsibility
O – Open-Closed
L – Liskov Substitution
I – Interface Segregation
D – Dependency Inversion
Читать статью
Найти количество повторений каждого элемента
На выходе получаем список кортежей, где 1й индекс это сам элемент, а 2й индекс это количество повторений
В данном случае мы используем
Если список содержал бы ещё значения 4 и 5, они бы не включались в итоговый вывод, так как мы уже обработали 3 элемента
На выходе получаем список кортежей, где 1й индекс это сам элемент, а 2й индекс это количество повторений
В данном случае мы используем
most_common(3)
, чтобы получить топ3 самых частых элементовЕсли список содержал бы ещё значения 4 и 5, они бы не включались в итоговый вывод, так как мы уже обработали 3 элемента
👍11
Значение возвращаемое
Этого можно избежать используя
Для монотонных часов начало отсчета не определено, поэтому вычисления с ними полезны только с использованием start и end
В данном примере они используются для измерения паузы программы, но вы также можете измерять время выполнения определенных участков кода и заменять их на более быстрые реализации
time.time()
основано на системном времени и напрямую зависит от него, поэтому замерять время выполнения кода не совсем удачная идея, если системное время может изменитсяЭтого можно избежать используя
monotonic()
из time
. Последовательные вызовы возвращают только возрастающие значения, и они не могут быть ниже предыдущего вызоваДля монотонных часов начало отсчета не определено, поэтому вычисления с ними полезны только с использованием start и end
В данном примере они используются для измерения паузы программы, но вы также можете измерять время выполнения определенных участков кода и заменять их на более быстрые реализации
👍7
Цифровая подпись в Python
HMAC можно использовать для проверки целостности данных,
заранее сгенерировать готовые подписи, и далее при получении файлов или ответов от клиента, сравнивать эти подписи
Тем самым мы можем убедиться в целостности данных, и в том,
что их не подменили во время передачи, ведь если изменить
хотя бы 1 байт информации, хеш подписи будет совершенно другой
HMAC можно использовать для проверки целостности данных,
заранее сгенерировать готовые подписи, и далее при получении файлов или ответов от клиента, сравнивать эти подписи
Тем самым мы можем убедиться в целостности данных, и в том,
что их не подменили во время передачи, ведь если изменить
хотя бы 1 байт информации, хеш подписи будет совершенно другой
👍14
В PyPi обнаружили вредоносные библиотеки
Библиотеки имитировали популярные пакеты и носили очень похожие на них имена, чтобы пользователь мог не заметить разницы. К примеру, под фреймфорк Django маскировались diango, djago, dajngo и djanga.
Авторы подделок внедряли в свои проекты вредоносный код, который собирал информацию о зараженной машине и окружении, некоторые библиотеки открывали реверс шелл для удаленного управления. В настоящее время все проблемные библиотеки уже исключены из репозитория.
В пакете colourama(имитация colorama) нашли код, который следит за буфером обмена, и меняет криптовалютные кошельки на собственные. По информации сервиса PyPI Stats, библиотеку colourama успели скачать всего 54 пользователя. Другими словами, colourama явно не принесла своим разработчикам финансового успеха.
Не все так безопасно как казалось, поэтому прежде чем устанавливать рандомную библиотеку, стоит хотя бы один раз пробежаться по коду.
Библиотеки имитировали популярные пакеты и носили очень похожие на них имена, чтобы пользователь мог не заметить разницы. К примеру, под фреймфорк Django маскировались diango, djago, dajngo и djanga.
Авторы подделок внедряли в свои проекты вредоносный код, который собирал информацию о зараженной машине и окружении, некоторые библиотеки открывали реверс шелл для удаленного управления. В настоящее время все проблемные библиотеки уже исключены из репозитория.
В пакете colourama(имитация colorama) нашли код, который следит за буфером обмена, и меняет криптовалютные кошельки на собственные. По информации сервиса PyPI Stats, библиотеку colourama успели скачать всего 54 пользователя. Другими словами, colourama явно не принесла своим разработчикам финансового успеха.
Не все так безопасно как казалось, поэтому прежде чем устанавливать рандомную библиотеку, стоит хотя бы один раз пробежаться по коду.
👍21🤯9🤔2🔥1
😈 Как обнаружить вредоносный пакет PyPi
Способы заразить машину:
1. Скачать и запустить файл (DLL в том числе)
2. Выполнить системную команду
3. Выполнить вредоносный код на текущем языке
Какие моменты должны вызывать подозрение:
1. Любые системные команды для связи с удаленным пк или данными текущего пк
2. Попытки скачать любой файл системными командами или через код
3. Если либа практически пустая, но вся логика лежит в DLL
4. Если код обфусцирован, зашифрован или даже закодирован в base64. Та хоть это шифр Цезаря, это не имеет значения. Скрывают данные не прикола ради
Так нашли инфостиллеры, ворующие пароли и системную информацию. Атака начинается с копирования существующих популярных библиотек и внедрения вредоносного оператора «
В итоге либа выглядит 1в1 как оригинал, но во время взаимодействия, запускает вредоносный код. Пример таких "библиотек" вы можете наблюдать на изображении поста, я думаю тут и не надо объяснять что запускать такое это смерти подобно 💀
Способы заразить машину:
1. Скачать и запустить файл (DLL в том числе)
2. Выполнить системную команду
3. Выполнить вредоносный код на текущем языке
Какие моменты должны вызывать подозрение:
1. Любые системные команды для связи с удаленным пк или данными текущего пк
2. Попытки скачать любой файл системными командами или через код
3. Если либа практически пустая, но вся логика лежит в DLL
4. Если код обфусцирован, зашифрован или даже закодирован в base64. Та хоть это шифр Цезаря, это не имеет значения. Скрывают данные не прикола ради
Так нашли инфостиллеры, ворующие пароли и системную информацию. Атака начинается с копирования существующих популярных библиотек и внедрения вредоносного оператора «
__import__
» в кодовую базу пакетаВ итоге либа выглядит 1в1 как оригинал, но во время взаимодействия, запускает вредоносный код. Пример таких "библиотек" вы можете наблюдать на изображении поста, я думаю тут и не надо объяснять что запускать такое это смерти подобно 💀
👍24🔥1🤯1