Новости информационных технологий - 25749

В этой статье я расскажу о своем опыте разработки кросспостинга из моего Facebook в мой Livejournal (далее – ЖЖ), а также поделюсь исходными текстами, готовыми к старту на ваших аккаунтах.

Причиной написания скриптов было получение возможности поиска по своим записям – возможности, которую Facebook никак не может запустить как часть своего сервиса, а также «оживление» своего ЖЖ. Поскольку доступ к любым постам в Фейсбуке требует обязательной авторизации, поисковых роботов сервис, очевидно, не пускает. Конкретно в моем случае это неудобно: ссылки, видео и мысли, которые я публикую в соцсети, зачастую я публикую «на будущее» – и часто настает тот момент, когда эта информация становится необходимой, но ее уже практически не найти.

Также с использованием опубликованных здесь скриптов удалось перенести архив существующих записей Facebook: более 2000 архивных сообщений моего Facebook перешли в ЖЖ с соответствующими датами. То есть, если у вас еще не было ЖЖ, его можно сразу наполнить информацией за все время.

Также в статье выкладываю готовые скрипты на Perl, с использованием которых можно транслировать статусы Facebook в Livejournal, а оттуда, при наличии соответствующих настроек, в Вконтакте, Twitter и RSS, а с использованием дополнительных веб-сервисов – практически во все блог-движки.
Читать полностью »

К своему удивлению, я не нашёл на Хабре исчерпывающей статьи на тему защиты от инъекций. Поэтому решил написать свою.

Несколько пространный дисклеймер, не имеющий прямого отношения к вопросу

Давайте признаем факт: количество статей (и комментариев) на тему защиты от SQL-инъекций, появившихся на Хабре в последнее время, говорит нам о том, что поляна далеко не так хорошо истоптана, как полагают некоторые. Причём повторение одних и тех же ошибок наводит на мысль, что некоторые заблуждения слишком устойчивы, и требуется не просто перечисление стандартных техник, а подробное объяснение — как они работают и в каких случаях должны применяться (а в каких — нет).

Статья получилась довольно длинной — в ней собраны результаты исследований за несколько лет — но самую важную информацию я постараюсь компактно изложить в самом начале, а более подробные рассуждения и иллюстрации, а так же различные курьёзы и любопытные факты привести в конце. Также я постараюсь окончательно развеять множественные заблуждения и суеверия, связанные с темой защиты от инъекций.

Я не буду пытаться изображать полиглота и писать рекомендации для всех БД и языков разом. Достаточное количество опыта у меня есть только в веб-разработке, на связке PHP/MySQL. Поэтому все практические примеры и рекомендации будут даваться для этих технологий. Тем не менее, изложенные ниже теоретические принципы применимы, разумеется, для любых других языков и СУБД.

Сразу отвечу на стандартное замечание про ORM, Active record и прочие query builders: во-первых, все эти прекрасные инструменты рождаются не по мановению волшебной палочки из пены морской, а пишутся программистами, используя всё тот же грешный SQL. Во-вторых, будем реалистами: перечисленные технологии — хорошо, но на практике сырой SQL постоянно встречается нам в работе — будь то legacy code или развесистый JOIN, который транслировать в ORM — себе дороже. Так что не будем прятать голову в песок и делать вид, что проблемы нет.

Хоть я и постарался подробно осветить все нюансы, но, вполне возможно, некоторые из моих выводов могут показаться неочевидными. Я вполне допускаю, что мой контекст и контексты читателей могут различаться. И вещи, которые кажутся мне сами собой разумеющимися, не являются таковыми для некоторых читателей. В этом случае буду рад вопросам и уточнениям, которые помогут мне исправить статью, сделав её более понятной и информативной.

Ещё только начав интересоваться темой защиты от инъекций, я всегда хотел сформулировать набор правил, который был бы одновременно исчерпывающим и компактным. Со временем мне это удалось:

Правила, соблюдение которых гарантирует нас от инъекций

  1. данные подставляем в запрос только через плейсхолдеры
  2. идентификаторы и ключевые слова подставляем только из белого списка, прописанного в нашем коде.

Всего два пункта.
Разумеется, практическая реализация этих правил нуждается в более подробном освещении.
Но у этого списка есть большое достоинство — он точный и исчерпывающий. В отличие от укоренившихся в массовом сознании правил «прогонять пользовательский ввод через mysql_real_escape_string» или «всегда использовать подготовленные выражения», мой набор правил не является катастрофическим заблуждением (как первое) или неполным (как второе).

Но вперёд, читатель — перейдём уже к подробному разбору.
Читать полностью »

Обзор навигатора Oysters Chrom 5500

Во время использования Oysters Chrom 5500, порой я забывал, что использую именно навигатор – устройство, которое изначально предназначено для поиска оптимального маршрута. 5500й Хром получился эдаким навороченным гаджетом, где помимо прослушивания музыки и просмотра видео, была возможность выхода в интернет в любой момент. А самое примечательное – на борту в качестве управляющей системы стоял Android.
Читать полностью »

Сегодня случилась со мной странная история. Зашёл я сутра в web-интерфейс Gmail, а меня отредиректило на какую-то порнуху:

МТС прохачил Gmail?

Я поразился. Посмотрел host gmail.com, вроде всё красиво. Посмотрел dig — тоже… Ну ладно, думаю, почту-то прочитать надо, отвечу я на ваши вопросы.

Читать полностью »

В блоге Name.com был опубликован рейтинг самых ужасных сайтов мира. Среди этих сайтов есть просто безобразные, есть почти неюзабельные, а некоторые могут служить эталоном банальности и неинтересности.

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

На этот раз я расскажу о китайской альтернативе Raspberry Pi — одноплатном компьютере на процессоре Allwinner A10 с HDMI выходом для подключения к телевизору.
MiniX — Одноплатный компьютер, или как китайцы готовили малиновый пирог
Сегодня в меню:

  • Процессор: Allwinner A10 1Ghz + GPU: Mali400
  • ОС: Android ICS, Ubuntu, Puppi linux, Fedora
  • USB Host(поддержка клавиатур, мышек, камер, сетевых карт)
  • Память: 512 оперативной, 4Гб пользовательской
  • Пульт ДУ
  • WiFi 802.11n
  • HDMI+Композитный выход(для старых телевизоров)

Под катом 11 вариантов применения, разборка, установка Linux и обновление Android, тесты и ссылки
Читать полностью »

Немного предыстории. Обладая неслабой паранойей, я заморочился мыслью о том, каким образом можно раз и навсегда удалить файлы с жёсткого диска в ОС Ubuntu.

Моя проблема состояла в том, что я уже удалил конфиденциальные файлы, а только потом узнал, как нужно было всё сделать правильно. Но и на этот случай нашёлся способ. Итак, знакомьтесь — команда shred.
Читать полностью »

Решил рассказать о уязвимости AirOS на примере взлома NanoStation M2.

Началось все с того, что меня подключили к интернету. А так как я живу в частном секторе, провайдер поставил направленный wi-fi а у меня на крыше NanoStation M2 2.4 GHz.
Меня очень возмутило что мне не сообщили ни пароль от wi-fi ни пароль от NanoStation (хотя и причины мне вполне понятны). Как я получил пароль от wi-fi читайте под катом.Читать полностью »

Скоро будет год с момента моего знакомства с MongoDb. Я был далеко не первым, кто начал с ней работать, но, тем не менее, эта технология все еще воспринимается как экспериментальная.

В целом скажу так: работать с MongoDB удобнее чем с MS SQL. Регулряно встречаются сценарии, которые требуют больше усилий по сравнению с SQL, однако, в результате ты больше знаешь о том, как устроена твоя база данных и лучше контролируешь что будет тормозить, а что — нет.

На хабре полно приложений в стиле «Hello World», так что инициализацию среды опустим и перейдем сразу к более продвинутым вопросам, а именно:

  • Почему удобнее хранить весь объект целиком, а не по таблицам?
  • Как бороться с реляциями?

Читать полностью »

Несмотря на то, что в некоторых регионах мира о мобильной связи приходится только мечтать, в США некоторые компании собираются прекратить поддержку 2G сетей в течение пяти лет. Все это делается для того, чтобы, так сказать, освободить место для 4G. Компания AT&T сообщила об этом в пятницу.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js