Pull to refresh
18
0
Владимир @valodik

Информационная Безопасность

Send message

Учебник по языку программирования Python (хабраиндекс)

Reading time1 min
Views313K

Серия статей «Основы Python»


I, Начало
II, Строки
III, Списки, кортежи, файлы
IV, Генераторы списков
V, Определение функций, основы
VI, Расширенное определение функций

Об основах языка Python в сжатой форме

Продвинутый уровень


Сила и красота декораторов Короткий экскурс в метапрограммирование.
Итерируем все и вся Специфика циклов в Питоне.
Как я учился работать с XML
Консервация объектов в Python Использование модуля Pickle.
Memoization в Python Оптимизация работы программ.
Простейшее рисование с помощью PIL
Regexp и Python: извлечение токенов из текста
Как писать маленькие приложения на python с графическим интерфейсом (библиотека Qt).

http://netsago.org/ru/docs/1/12/
Одеваем скрипты Python с помощью EasyGui (добавляем простой диалоговый интерфейс)

http://djbook.ru/
Учебник по Django (Python-фреймворк для веб-приложений)

Читать дальше →
Total votes 164: ↑161 and ↓3+158
Comments61

Тестирование безопасности клиент-серверного API

Reading time6 min
Views41K
2 года назад я выступал на конференции CodeFest с темой «Пентест на стероидах. Автоматизируем процесс» и делал пересказ выступления в качестве статьи. В этом году я с большим удовольствием снова принял участие в конференции и выступил с темой «BlackBox тестирование безопасности клиент-серверного API» и, видимо уже в качестве традиции, также делаю пересказ выступления.



Уязвимости в API встречаются. Правда.

О чем разговор?


Разговор про API, но API бывает разным — API операционной системы, сайта, десктопной программы, да хоть чего. Вкратце — API это обращение к методам чего-либо (например в случае ОС — запись в файл) через определенный метод. И запуск какого-нибудь файла с т.ч. зрения разработки произойдет схожим образом (тоже через API метод ОС), хотя результат выполнения команды совершенно разный. В веб-технологиях многие тоже реализуют API к своим проектам, и если на пальцах: можно отправить сообщение в соц. сети зайдя на сайт, а можно — сформировав специальный HTTP запрос. И при реализации подобного альтернативного использования функционала допускаются (как и везде) ошибки в безопасности. Статья как раз о специфичных ошибках при реализации подобного функционала в веб-проектах.
Читать дальше →
Total votes 68: ↑66 and ↓2+64
Comments16

Пентест на стероидах. Автоматизируем процесс

Reading time6 min
Views45K
С данной темой доклада я выступал на CodeFest. А здесь я перескажу словами, что, как и зачем.


Доклад довольно поверхностный и не требует практически никакой квалификации в области ИБ. Был рассчитан на целевую аудиторию (веб-разработчики, тестировщики (не на проникновение), сисадмины и т.д.). Все довольно просто: несколько утилит, запустили, подождали, разбираем отчет.

Видеоприглашение на конференцию:

Читать дальше →
Total votes 82: ↑75 and ↓7+68
Comments18

Делегаты и события в .NET

Reading time26 min
Views239K
От переводчика. Судя по своему опыту, а также по опыту знакомых коллег-программистов, могу сказать, что для начинающего разработчика среди всех базовых функций языка C# и платформы .NET делегаты и события являются одними из наиболее сложных. Возможно, это из-за того, что необходимость делегатов и событий на первый взгляд кажется неочевидной, или же из-за некоторой путаницы в терминах. Поэтому я решил перевести статью Джона Скита, рассказывающую о делегатах и событиях на самом базовом уровне, «на пальцах». Она идеальна для тех, кто знаком с C#/.NET, однако испытывает затруднение в понимании делегатов и событий.

Представленный здесь перевод является вольным. Однако если под «вольным», как правило, понимают сокращённый перевод, с упущениями, упрощениями и пересказами, то здесь всё наоборот. Данный перевод является немного расширенной, уточнённой и обновлённой версией оригинала. Я выражаю огромную благодарность Сергею Теплякову aka SergeyT, который внёс неоценимый вклад в перевод и оформление данной статьи.


Люди часто испытывают затруднения в понимании различий между событиями и делегатами. И C# ещё больше запутывает ситуацию, так как позволяет объявлять field-like события, которые автоматически преобразуются в переменную делегата с таким же самым именем. Эта статья призвана прояснить данный вопрос. Ещё одним моментом является путаница с термином «делегат», который имеет несколько значений. Иногда его используют для обозначения типа делегата (delegate type), а иногда — для обозначения экземпляра делегата (delegate instance). Чтобы избежать путаницы, я буду явно использовать эти термины — тип делегата и экземпляр делегата, а когда буду использовать слово «делегат» — значит, я говорю о них в самом широком смысле.
Читать статью
Total votes 50: ↑44 and ↓6+38
Comments5

Парсинг на Pуthon. Как собрать архив Голубятен

Reading time9 min
Views43K
Статья описывает разработку скрипта на языке Python. Скрипт выполняет парсинг HTML-кода, составление списка материалов сайта, скачивания статей и предварительную очистку текста статьи от «посторонних» элементов. Используется библиотеки urllib (получение HTML-страниц), lxml (парсинг HTML-кода, удаление элементов и сохранение «очищенной» статьи), re (работа с регулярными выражениями), configobj (чтение файлов конфигурации).

Для написания скрипта достаточно базовых знаний языка Python, навыков программирования и отладки кода.

В статье даются пояснения по применению библиотек на примере составления списка публикаций С.М. Голубицкого, приведена ссылка на работающий скрипт.
Читать дальше →
Total votes 60: ↑46 and ↓14+32
Comments41

Grab — python библиотека для парсинга сайтов

Reading time13 min
Views149K
Лет пять-шесть назад, когда я ещё программировал преимущественно на PHP, я начал использовать библиотеку curl для парсинга сайтов. Мне нужен был инструмент, который позволял эмулировать сессию пользователя на сайте, отсылать заголовки обычного браузера, давать удобный способ отсылки POST-запросов. Сначала я пытался использовать напрямую curl-расширение, но его интерфейс оказался очень неудобным и я написал обёртку с более простым интерфейсом. Время шло, я пересел на python и столкнулся с таким же дубовым API curl-расширения. Пришлось переписать обёртку на python.
Читать дальше →
Total votes 80: ↑79 and ↓1+78
Comments53

Первые шаги в программировании на Python

Reading time3 min
Views36K
Пару месяцев назад взялся я за изучение Python. Прочитав про используемые структуры, работу со строками, генераторы, основы ООП, размышлял какую полезную программу написать, что бы это все применить на реальной задаче.
По счастливому стечению обстоятельств ко мне обратились знакомые с просьбой скачать мультфильм «Чудеса на виражах».
Читать дальше →
Total votes 60: ↑44 and ↓16+28
Comments35

Python-digest #17. Новости, интересные проекты, статьи и интервью [2 марта 2014 — 9 марта 2014]

Reading time4 min
Views9.9K
Сегодня новостей о python и близлежащих технологиях получилось вполне достаточно. Большое спасибо тем кто присылает новые статьи на инструмент для создания дайджестов. Похоже проект начинает двигаться в нужном направлении.

Иллюстрация от owlman75 сегодня эксклюзивная — ее пришлось рисовать из дома вручную. По-моему она от этого только выиграла. В любом случае, огромное спасибо за нее автору.

Хочу, также, поздравить всех девушек и женщин с прошедшим праздником. Пусть праздники проходят в календаре, а в душе остаются навсегда.

Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments4

Python-digest #18. Новости, интересные проекты, статьи и интервью [9 марта 2014 — 16 марта 2014]

Reading time3 min
Views16K
Подоспели свежие новости о python и близлежащих технологиях. Интересные видеоматериалы на русском о django, статьи о том как замерить покрытие кода тестами, о декораторах и деревьях. В общем, каждому найдется что-нибудь интересное.

Спасибо owlman75 за иллюстрацию, а также всем кто присылает новости на инструмент для создания дайджестов. Появились даже спамеры ><

Не секрет, что я собираю новости в том числе и из почтовых рассылок PythonWeekly и PyCoders. В этот раз получилось довольно забавная ситуация — мы настолько хорошо собирали новости, что практически все материалы из пятничной рассылки оказались в нашем предыдущем выпуске. Похоже PythonWeekly отстает на неделю от реально свежих новостей. Кроме того, анонсы всех материалов по мере их добавления доступны

Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments10

ABC: Always Be Coding (не переставай программировать)

Reading time5 min
Views75K


Как получить работу инженера?

Давай на чистоту. Ты хороший кандидат на должность инженера? Как ты сам себя оцениваешь? Много ли компаний, в которых ты бывал на собеседованиях? Каково у тебя отношение пройденных интервью к полученным предложениям о работе? Попробуй воспользоваться следующей формулой (это мое сферическое измерение в вакууме, которое не означает ровным счетом ничего):

# x = количество компаний, в которых ты проходил собеседования

# y = количество предложений о работе, которые ты получил

рейтинг = 100 * log(x) * y / x



Если твой рейтинг < 90, обязательно прочти это. Если > 120, возможно, тебе это не нужно, но, все равно прочти.

Читать дальше →
Total votes 109: ↑90 and ↓19+71
Comments58

Python-digest #16. Новости, интересные проекты, статьи и интервью [23 февраля 2013 — 2 марта 2014]

Reading time3 min
Views13K
Продолжаем находить и переводить анонсы самых интересных и полезных новостей из мира python, близлежащих технологий и сообщества. Сегодня о играх, GUI, бесплатном хостинге, online IDE, параллельном выполнении кода и еще много интересного.

Не устаю благодарить owlman75 за иллюстрации к выпускам, а также всех-всех-всех, кто, пусть изредка, но присылает новости для публикации через специально обученный для этого интерфейс.

Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments3

Python-digest #15. Новости, интересные проекты, статьи и интервью [18 февраля 2013 — 23 февраля 2014]

Reading time3 min
Views8K
Новостей на сегодня удалось собрать не очень много, но они довольно интересные. Будут и игры, и разработка для мобильных устройств, и обработка звука, и замечательный обзор ORM, а также новости с вкусняшками от Pewee. Кроме того, стремительно приближается конференция в Казани (она состоится 1 марта).

Пользуясь случаем, хочу поздравить защитников отечества с прошедшим праздником 23 февраля и всех-всех-всех с победой в общем зачете олимпиады.

Спасибо owlman75 за иллюстрацию и добрые слова, благодаря которым я решил все-таки сделать выпуск, несмотря на то, что завалил обещанный срок и столкнулся с личными проблемами.

Прошу помощи — может кто-то может поделиться или разработать UserScript для автоматической заливки картинок на habrastorage? Он мне сильно ускорит процедуру публикации.

Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments5

Как я перехватывал трафик покер рума или «Пишем свой MitM SSL прокси на C#»

Reading time5 min
Views76K
Однажды у меня появилась навязчивая идея: посмотреть, а что же там такого покерный клиент отправляет на сервер. Как Вы понимаете, крупные покерные румы используют SSL для передачи данных. Протоколы, основанные на асимметричном шифровании, подвержены только одному известному мне виду атак — MitM (Man in the middle — человек посередине).

Помаявшись с тонной софта, предназначенного для реализации MitM на SSL соединение, я пришел к выводу, что руки растут не из того места либо у разработчиков данных инструментов, либо у меня. Но идея была жутко навязчивая, и было принято решение сделать всё вручную. Если интересно, что же из всего этого вышло, прошу под кат.

Читать дальше →
Total votes 62: ↑54 and ↓8+46
Comments33

AES-128. Детали и реализация на python

Reading time12 min
Views73K
Идея написать для себя что-то шифрующее родилась довольно тривиально — пришлось завести еще одну дебетовую карту и, следовательно, хранить в голове еще один пин-код. Хранить такую информацию в открытом виде паранойя не позволяет, использовать сторонние сервисы тоже, поэтому после некоторых поисков остановился на стандарте AES. Сразу захотелось разобраться и реализовать алгоритм самому, не прибегая к дополнительным модулям.

В статье я расскажу подробно о составляющих алгоритма, немного окунемся в мат часть и приведу пример реализации на python. В разработке я ограничивался только тем, что входит в состав стандартной библиотеки.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments23

Python-digest #14. Новости, интересные проекты, статьи и интервью [9 февраля 2014 — 16 февраля 2014]

Reading time3 min
Views11K
Продолжаем освещать самые значимые события в мире python и близлежащих технологий за минувшую неделю. В этот раз пара отвлеченных статей от Ронахера и Бикинга, одну из которых уже перевели на хабре. Много интересных проектов и материалов из разных сфер интересов. В частности, проект улучшения поддержки PostgreSQL в Django набравший отличный ход на кикстартере. Ну и немного забавного — как вот эта печенька понравившаяся очень многим читателям reddit.

Благодарю owlman75 за иллюстрацию к выпуску. Всем желаю продуктивной рабочей недели.

Присылайте новости для публикации в дайджесте вот сюда и тогда они никуда не пропадут.

Следующий выпуск будет 23 февраля.

Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments2

Python-digest #13. Новости, интересные проекты, статьи и интервью [31 января 2014 — 9 февраля 2014]

Reading time3 min
Views15K
Эх, как знал, что чертова дюжина не хорошее число. В этот раз выпуск свежих новостей о python и близлежащих технологиях запоздал. Причиной тому завал на работе. На самом деле подготовка дайджеста даже с уже готовыми новостями занимает довольно продолжительное время. Придется перенести выпуски на субботу, чтобы я делал их спокойно и не случалось срывов как в этот раз.


Хочу сказать традиционное спасибо owlman75 за иллюстрацию к выпуску. Он пока readonly, но возможно опубликует интересную статью подходящую нашему дайджесту и получит от кого-нибудь приглашение. Говорят частенько это делает НЛО.

Самих статей на этой неделе не очень много. Все получающие PythonWeekly и PythonCoders не дадут соврать — там тоже не было ничего особо интересного. Хочу сказать, что информационный фон python-сообщества формируем мы сами — поэтому поддерживайте любимый ЯП: пишите статьи, афишируйте свои интересные проекты, экспериментируйте с новшествами.

Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments13

Распараллеливаем процессы для ускорения вычислений и выполнения заданий в Linux

Reading time11 min
Views80K


Почти все персональные компьютеры, выпущенные за последние несколько лет, обладают как минимум двухъядерным процессором. Если у тебя, читатель, не очень старый комп или не какой-нибудь бюджетный ноутбук, то, вероятнее всего, ты обладатель многопроцессорной системы. А если еще любишь играть в игры, то тебе доступно около сотни GPU-ядер. Однако львиную долю времени вся эта мощь пылится без дела. Попробуем это исправить.
Подробности
Total votes 85: ↑69 and ↓16+53
Comments20

Python-digest #11. Новости, интересные проекты, статьи и интервью [17 января 2013 — 24 января 2014]

Reading time3 min
Views10K
Продолжаем собирать свежие новости, информацию о проектах, интересные статьи о python и относящихся к нему технологиях. В этот раз много статей на русском из блога Максима Никитенко, которые он сам прислал через форму добавления новости на инструменте для создания дайджеста.

Мобильная версия

Спасибо большое owlman в этот раз он не только сделал иллюстрацию для выпуска, но и нарисовал целую гору замечательных иконок для разделов.

Просьба! Мне бы хотелось перенести инструмент создания дайджеста на какой-нибудь более python-related домен. Может кто-нибудь поможет денежкой (600р. в год) или сам купит домен и делегирует на мой хостинг? Не хаброжители могут написать мне по этому поводу (да и любым другим) в скайп: alrusdi
На год уже есть спасибо inetava
И продление на второй год спасибо vaal

Опрос о рассылке. Прошел слушок, что из-за недостататочного количества плюсиков или секретной политики хабры дайджест не всегда попадает в мобильную ленту. Добавил в пост опрос нужно ли организовать почтовую рассылку с анонсом очередного выпуска.

Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments4

Распознавание рукописных символов с использованием Python и scikit

Reading time5 min
Views29K
Привет. Наверняка многие интересуются методами машинного обучения и решения различных задач, которые обычными подходами не решаются. Недавно мне посчастливилось попасть на курс Data Mining, организованный в рамках программы GameChangers. Первым же домашним заданием было сделать сабмит на Kaggle — решить задачу Digit Recognizer.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments7

Python-digest #9. Новости, интересные проекты, статьи и интервью [27 декабря 2013 — 10 января 2014]

Reading time4 min
Views11K
Поздравляем всех с прошедшими праздниками. Теперь уже с новыми силами и настроением читаем подборку всего самого интересного, что происходило на новогодних каникулах с Python и близлежащими технологими. А здесь и очередная ругань Армина Ронахера на проблемы с python3 и целый сериал о декораторах и интересный пост о сокращении количества кода для реализации многопоточных приложений.

Огромное спасибо owlman за иллюстрацию и axce1 за две присланных ссылки на статьи об интеграционном тестировании БД и объектно-ориентированном программировании.

Все еще прошу слать мне в личку или скайп (alrusdi) ссылки на интересные стаьи — я обязательно включу их в следующие выпуски дайджеста. На самом деле, ради этого все и затевалось. Но пока лично для меня эта работа интересна лишь тем, что позволяет не отстать от основных трендов развидия языка и технологий. Может быть взлетит IRC-конференция? Добавил опрос про это в конец статьи.

Можно пробовать постить ссылки в систему для создания дайджестов — вот здесь. По мере их рассмотрения ссылки будут появляться в ленте.

Само чтиво
Total votes 41: ↑40 and ↓1+39
Comments11

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Date of birth
Registered
Activity