<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lifestyle business</title>
	<atom:link href="http://www.volinrok.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.volinrok.com</link>
	<description>Записки о софтверном бизнесе</description>
	<lastBuildDate>Tue, 26 Jun 2012 21:54:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Как написать успешную социальную игру</title>
		<link>http://www.volinrok.com/2012/06/26/kak-napisat-uspeshnuyu-socialnuyu-igru/</link>
		<comments>http://www.volinrok.com/2012/06/26/kak-napisat-uspeshnuyu-socialnuyu-igru/#comments</comments>
		<pubDate>Tue, 26 Jun 2012 21:54:32 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=1004</guid>
		<description><![CDATA[Некоторые мысли, навеянные изучением игры Zynga Poker (номер один приложение в AppStore по In-App покупкам) Реализуем какую-нибудь известную оффлайновую игру, достаточно простую и азартную, как Texas HoldEm покер. Эту игру многие знают - низкий порог вхождения. Азартность - чтобы люди играли помногу и возвращались. Игра не должна прекращаться, если один из игроков отвалится из-за плохой [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1005" title="Texas-Holdem" src="http://www.volinrok.com/wp-content/uploads/Texas-Holdem.jpg" alt="" width="640" height="435" /></p>
<p>Некоторые мысли, навеянные изучением игры Zynga Poker (номер один приложение в AppStore по In-App покупкам)</p>
<ul>
<li>Реализуем какую-нибудь известную оффлайновую игру, достаточно простую и азартную, как Texas HoldEm покер. Эту игру многие знают - низкий порог вхождения. Азартность - чтобы люди играли помногу и возвращались. Игра не должна прекращаться, если один из игроков отвалится из-за плохой связи. Одна игра не должна длиться слишком долго.</li>
<li>Простота игры позволит написать множество клиентов под разные платформы, основное действо происходит на сервере.</li>
<li>Качество приложений не играет такую уж большую роль, если играть интересно и всегда есть с кем. Я пощупал клиенты под iPhone, iPad и приложение для Facebook. Самое удобное и приятное приложение для iPad. Приложение для Facebook перегружено ненужной информацией и рекламой других игр. Приложению под iPhone явно не хватает места на экране, из-за этого меняется назначение кнопок во время игры и получается не очень удобно.</li>
<li>Авторизация только через Facebook - чтобы спамить друзей. Собственно спамить необязательно, но игра это поощряет плюс некоторые дополнительные плюшки можно заработать только вовлекая друзей.</li>
<li>На входе дают определенную сумму виртуальных денег. Если проигрался и хочется играть еще - можно вовлекать друзей или купить фишек внутри игры. Стоят фишки недорого, минимальный пакет стоит 99 центов.</li>
<li>Подумали и о тех, кто проигрался полностью, но тратить деньги не хочет. Время от времени присылают в подарок небольшой набор фишек, чтобы можно еще поиграть и не соскочить с крючка.</li>
<li>Обычные социальные моменты - можно общаться за столом, угощать виртуальными напитками, подсаживаться со стол к друзьям итд.</li>
<li>Пузомерки - рейтинги, турниры, достижения, уровни.</li>
</ul>
<p>Как видно, ничего технически сложного в этом нет. Все остальное это маркетинг, вовлечение как можно большего числа пользователей.</p>
<p>Тут сразу подумалось, у каких традиционных русских игр есть шанс выйти на такое количество пользователей. Преферанс слишком академичен, игра интеллигенции. Мафия, на мой взгляд, интересна именно для игры в кругу друзей, кроме того нельзя терять игроков из-за дисконнекта. Шахматы - слишком сложно и любитель никогда не обыграет профессионала. Игра в слова (составлять слова из букв большого слова) на время может быть интересна. Эрудит - тоже неплохой вариант, у той же Zynga есть достаточно популярный WordsWithFriends. С покером, конечно, не сравнится, но тоже довольно азартно. Какие еще есть варианты?</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/06/26/kak-napisat-uspeshnuyu-socialnuyu-igru/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ирландия</title>
		<link>http://www.volinrok.com/2012/05/24/irlandiya/</link>
		<comments>http://www.volinrok.com/2012/05/24/irlandiya/#comments</comments>
		<pubDate>Thu, 24 May 2012 17:02:20 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Lifestyle]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=995</guid>
		<description><![CDATA[Несколько недель назад мы провели семейный отпуск в Ирландии. Наши друзья и знакомые недоумевали, почему из всех интересных мест мы выбрали именно эту страну. Мы и сами толком не знали. Теперь знаем. Это совершенно удивительная страна, небольшая, уютная, зеленая. Там мало деревьев, но трава и мох растут повсюду. Там горы, скалы, океан и свежий вохдух. [...]]]></description>
			<content:encoded><![CDATA[<p>Несколько недель назад мы провели семейный отпуск в Ирландии. Наши друзья и знакомые недоумевали, почему из всех интересных мест мы выбрали именно эту страну. Мы и сами толком не знали. Теперь знаем.</p>
<p>Это совершенно удивительная страна, небольшая, уютная, зеленая. Там мало деревьев, но трава и мох растут повсюду. Там горы, скалы, океан и свежий вохдух. Там вкусное пиво и простая еда. Там мало людей, но они всегда рады гостям и туристам. Там размеры населенных пунктов измеряют в пабах (один паб на каждые 80-100 жителей вне крупных городов) . В самих пабах уютная атмосфера и играет живая музыка.  Там нет нет номеров домов, только названия. А зачем, почтальон и так всех знает. Там узкие дороги, вместо обочин живая изгородь или каменная оградка. Там растет вереск и гуляют фазаны. Там здорово.</p>
<p>Было бы грехом не описать наши похождения, пока они свежи в памяти. Получился целый вебсайт. Читайте <a href="http://myireland.net/">путевые заметки по Ирландии</a>.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-997" style="border: 1px solid black;" title="IMG_6755" src="http://www.volinrok.com/wp-content/uploads/IMG_6755.jpg" alt="" width="720" height="480" /></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-996" style="border: 1px solid black;" title="IMG_6268" src="http://www.volinrok.com/wp-content/uploads/IMG_6268.jpg" alt="" width="720" height="479" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/05/24/irlandiya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Юзабилити автомобильных радиоприемников</title>
		<link>http://www.volinrok.com/2012/05/23/yuzabiliti-avtomobilnykh-radiopriemnikov/</link>
		<comments>http://www.volinrok.com/2012/05/23/yuzabiliti-avtomobilnykh-radiopriemnikov/#comments</comments>
		<pubDate>Wed, 23 May 2012 21:03:25 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=986</guid>
		<description><![CDATA[Мы любим ругать разработчиков софта, который идет с разными железяками и машины здесь не исключение. Отсутствие нормальной обратной связи от пользователей и невозможность апгрейдов не дают компаниям довести свой софт до ума. Взять обычное авторадио. Я люблю видеть, как называется текущая песня и кто ее исполняет. Вот как выглядит этот экран в Audi Q7. Название [...]]]></description>
			<content:encoded><![CDATA[<p>Мы любим ругать разработчиков софта, который идет с разными железяками и машины здесь не исключение. Отсутствие нормальной обратной связи от пользователей и невозможность апгрейдов не дают компаниям довести свой софт до ума.</p>
<p>Взять обычное авторадио. Я люблю видеть, как называется текущая песня и кто ее исполняет. Вот как выглядит этот экран в Audi Q7. Название песни неспешно прокручивается вместе с названием радиостанции и исполнителем в маленьком окошке.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-987" style="border: 1px solid black;" title="audi1" src="http://www.volinrok.com/wp-content/uploads/audi1.jpg" alt="" width="720" height="425" /></p>
<p>Приходится раза три-четыре повернуть голову, чтобы увидеть кто играет и что. Безопасности движения это не способствует. Почему под актуальную информацию отводится только десятая часть экрана - непонятно.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-988" style="border: 1px solid black;" title="audi2" src="http://www.volinrok.com/wp-content/uploads/audi2.jpg" alt="" width="720" height="422" /></p>
<p>А вот как оно вышлядит на панели Mini Couper.</p>
<p><img class="aligncenter size-full wp-image-989" style="border: 1px solid black;" title="mini1" src="http://www.volinrok.com/wp-content/uploads/mini1.jpg" alt="" width="720" height="540" /></p>
<p>Там все все две строки информации, но можно прокрутить и поставить как тебе надо.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-990" style="border: 1px solid black;" title="mini2" src="http://www.volinrok.com/wp-content/uploads/mini2.jpg" alt="" width="720" height="540" /></p>
<p>Удобно, практично. Казалось бы мелочь, но продукт и состоит из множества таких мелочей.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/05/23/yuzabiliti-avtomobilnykh-radiopriemnikov/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Бизнес-задачка с несколькими неизвестными</title>
		<link>http://www.volinrok.com/2012/04/18/biznes-zadachka-s-neskolkimi-neizvestnymi/</link>
		<comments>http://www.volinrok.com/2012/04/18/biznes-zadachka-s-neskolkimi-neizvestnymi/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 19:22:13 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Деньги]]></category>
		<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=978</guid>
		<description><![CDATA[Дано: есть две компании, выпускающие продукты для веб-разработчиков. Компания A (наша компания, xlinesoft.com) рассматривает возможность приобретения компании Б (websitedatabases.com). Компания Б является в какой-то мере конкурентом компании А, но продукты у нее слабенькие и работает она в другом ценовом диапазоне. Продукты обновляются нечасто, затрат на поддержание бизнеса почти нет, техподдержки минимум, типичный бизнес программиста одиночки. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Дано:</strong> есть две компании, выпускающие продукты для веб-разработчиков. Компания A (наша компания, xlinesoft.com) рассматривает возможность приобретения компании Б (websitedatabases.com).</p>
<p>Компания Б является в какой-то мере конкурентом компании А, но продукты у нее слабенькие и работает она в другом ценовом диапазоне. Продукты обновляются нечасто, затрат на поддержание бизнеса почти нет, техподдержки минимум, типичный бизнес программиста одиночки. Основной актив компании Б - хорошее положение в поисковых системах по важным для нашей индустрии фразам таким как "web databases", "database software" и "mysql software". Эти позиции они держат давно, можно предположить, что никакого черного SEO там не замешано и как минимум еще какое-то время эти позиции сохранятся.</p>
<p><strong>Вопрос:</strong> за какую сумму (в размерах годового оборота компании Б) компании А стоит ее покупать? В случае покупки, как правильно монетизировать этот актив? Нужно заметить, что компанию Б устраивает положение дел и продаться она будет готова только за достойную, по ее мнению, цену.</p>
<p><strong>Варианты отбить потраченные деньги</strong></p>
<p>Ну и просто навскидку несколько вариантов:</p>
<ol>
<li>Пассивный.  Просто  сидеть и собирать денежку. Через какое-то время потраченное деньги вернутся и дальше начнется прибыль. Есть риск, что срок возврата можеят затянуться.</li>
<li>Пытаться  апгрейдить  его  пользователей  на наши продукты. Что-то получится  конечно,  но  цену  на апгрейд придется  дать  им  очень  хорошую, его продукты  дешевле в 6-7 раз.  Плюс придется что-то писать дополнительное для импорта существующих продуктов.</li>
<li>Рекламировать   на   его   сайте   наши   продукты. Будет  часть дополнительных  покупок,  хотя  это можт повлиять на продажи его продуктов. Сильно менять  его  вебсайт  не  хочется, можно испортить хорошее положение в поисковых системах.</li>
<li>Развивать его продукты смысла особого нет, там полный тупик.</li>
<li>Варианты  поиграться  ценой его продуктов,  поднять или повысить. Может принести успех, а может и не принести. Возможно он уже такое делал и остановился на отпимальной цене.</li>
<li>Постепенно заменить его продукт нашим. Можно сильно облегченный/домохозяечный вариант нашего софта, обозвать его PHPMagic (его продукт) и продавать.</li>
</ol>
<p>Какие еще варианты вы видите? На каких условиях вы купили бы компанию Б?</p>
<p><strong>UPD: </strong>владелец websitedatabases.com таки<a href="https://flippa.com/2731577-revenue-website-earning-1500-3000-every-month-for-7-years-strong"> выставил его на продажу</a> на Flippa. Там же можно посмотреть сколько он зарабатывает.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/04/18/biznes-zadachka-s-neskolkimi-neizvestnymi/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>What is your exit strategy?</title>
		<link>http://www.volinrok.com/2012/03/22/what-is-your-exit-strategy/</link>
		<comments>http://www.volinrok.com/2012/03/22/what-is-your-exit-strategy/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 03:03:23 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=973</guid>
		<description><![CDATA[У айтишной компании если несколько вариантов развития: ничего не получилось - закрываемся остаемся маленькими и успешными (37Signals, FogCreek) вырастаем  и продаемся другой компании (их много) вырастаем и сами всех скупаем на корню (Google, Facebook, Adobe, Microsoft) Грань между вариантами 3 и 4 довольно тонка. Не всегда легко оценить размер рынка и возможности дальнейшего роста. Большинство [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-976" style="border-image: initial; border: 1px solid black;" title="business-exit-strategy" src="http://www.volinrok.com/wp-content/uploads/business-exit-strategy.jpg" alt="" width="388" height="309" /></p>
<p>У айтишной компании если несколько вариантов развития:</p>
<ol>
<li>ничего не получилось - закрываемся</li>
<li>остаемся маленькими и успешными (37Signals, FogCreek)</li>
<li>вырастаем  и продаемся другой компании (<a href="http://techcrunch.com/search/buys">их много</a>)</li>
<li>вырастаем и сами всех скупаем на корню (Google, Facebook, Adobe, Microsoft)</li>
</ol>
<p>Грань между вариантами 3 и 4 довольно тонка. Не всегда легко оценить размер рынка и возможности дальнейшего роста. Большинство успешных компаний доходит до третьего уровня и поглощается лидерами рынка.</p>
<p>Сценарий: вы основали айтишную компанию, которая успешно растет, набирает работников и клиентов, возможно прошли один или два раунда финансирования. Вы любите свое дело, своих клиентов и с оптимизмом смотрите вперед. В один прекрасный день приходит письмо от CEO компании, являющейся в вашей индустрии признаным лидером. Ура, они хотят вас купить! В процессе переговоров выясняется один нюанс - их больше всего интересует не ваши технологии и не ваши миллионы пользователей. Им нужна ваша талантливая команда инженеров.</p>
<p>И вот тут начинается самое интересное. С одной стороны вы добились полного успеха, а с другой гложет червячок сомнения - что будет с вашим сервисом, который вы с такой любовью создавали? Возможно его и не закроют, но так продложать развитие будут другие люди, у которых нет ни вашего видения, ни вашей любви к своему детищу.</p>
<p>Примерно в такой ситуации оказался блогосервис Posterous, <a href="http://blog.posterous.com/big-news">купленный недавно Twitter-ом</a>. А что еще им оставалось делать, деньги-то возвращать инвесторам как-то нужно. Тем более, что сервис блогохостинга не самая горячая тема сейчас и лучше предложения может и не появиться.</p>
<p>Как бы красиво не говорили основатели о любви к своим клиентам и продуктам, бизнес есть бизнес. Рано или поздно кто-то сделает предложение, от которого не получится отказаться. И лучше подумать заранее кому, на каких условиях и за сколько вы готовы продать свой бизнес.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/03/22/what-is-your-exit-strategy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Новый стиль работы</title>
		<link>http://www.volinrok.com/2012/03/13/novyj-stil-raboty/</link>
		<comments>http://www.volinrok.com/2012/03/13/novyj-stil-raboty/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 19:05:15 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=970</guid>
		<description><![CDATA[Каким -то образом оказался подписан на русскоязычную рассылку одной известной компании. Угадайте с трех раз, что это за компания. Добрый день! Mы рады сообщить, что бета-версия нового Product X доступна для скачивания. Product X воплотил в себе весь опыт компании Y как в создании решений для собственной ИТ-инфраструктуры организаций, так и в построении и управлении [...]]]></description>
			<content:encoded><![CDATA[<p>Каким -то образом оказался подписан на русскоязычную рассылку одной известной компании. Угадайте с трех раз, что это за компания.</p>
<blockquote><p><em>Добрый день! </em><br />
<em>Mы рады сообщить, что бета-версия нового Product X доступна для скачивания. </em><br />
<em>Product X воплотил в себе весь опыт компании Y как в создании решений для собственной ИТ-инфраструктуры организаций, так и в построении и управлении публичными облачными сервисами. <strong>Product X является легко масштабируемой, простой и экономически эффективной серверной платформой для построения собственной серверной инфраструктуры организации, включая частное облако, а так же гибкой и безопасной ее интеграции с публичными облачными сервисами.</strong> Product X – это: </em></p>
<ul>
<li><em>Больше, чем просто виртуализация</em></li>
<li><em>Возможности множества сервисов, простота одного инструмента</em></li>
<li><em>Любое приложение на любой платформе</em></li>
<li><em>Новый стиль работы</em></li>
</ul>
<p><em>Попробуйте Product X уже сегодня в бета-версии!</em></p></blockquote>
<p>Угадали? Не сомневаюсь.</p>
<p>Неужели так трудно нанять копирайтера, который напишет внятное сообщение, без нагромождения эпитетов и пустых ("Новый стиль работы") фраз. От этого монстра так веет фальшивым энтузиазмом и автоматическим переводом.</p>
<p>Все идем <a href="http://www.apple.com/ipad/">сюда</a> и учится представлять новые товары просто и со вкусом.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/03/13/novyj-stil-raboty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Кевин Митник: Ghost in the Wires</title>
		<link>http://www.volinrok.com/2012/03/08/kevin-mitnik-ghost-in-the-wires/</link>
		<comments>http://www.volinrok.com/2012/03/08/kevin-mitnik-ghost-in-the-wires/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 21:41:15 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=962</guid>
		<description><![CDATA[Закончил книгу Кевина Митника "Ghost in the Wires: My Adventures as the World's Most Wanted Hacker". Очень рекомендую. Кевин описывает свои истории прокниновения во внутренние сети самых известных компаний. Поворотов сюжета и драматизма там хватит на десяток детективов. Основной вывод - ни одна система не может считаться защищенной, пока к ней имеют доступ люди. Человек [...]]]></description>
			<content:encoded><![CDATA[<p>Закончил книгу Кевина Митника <a href="http://www.amazon.com/Ghost-Wires-Adventures-Worlds-Wanted/dp/0316037702">"Ghost in the Wires: My Adventures as the World's Most Wanted Hacker"</a>. Очень рекомендую. Кевин описывает свои истории прокниновения во внутренние сети самых известных компаний. Поворотов сюжета и драматизма там хватит на десяток детективов.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-963" style="border-image: initial; margin-top: 15px; margin-bottom: 15px; border: 1px solid black;" title="mitnick-2" src="http://www.volinrok.com/wp-content/uploads/mitnick-2.jpg" alt="" width="407" height="316" /></p>
<p>Основной вывод - ни одна система не может считаться защищенной, пока к ней имеют доступ люди. Человек всегда самое слабое звено в любой защите.</p>
<p>Пердставьте себе ситуацию - в IT отделе крупной компании поздним вечером в субботу раздается звонок. Сотрудник X, находящийся на выставке в Лас-Вегасе, не может скачать важную презентацию компанейского сервера. Без этой презентации завтрашний день можно считать потерянным. Ваша компания использует двухфакторную аутентификацию с помощью RSA брелока, но сотрудник X забыл его на работе. Сотрудник X знает свой логин и пароль, свой Employee ID, имена боссов и других сотрудников, названия проектов над которыми он работает.</p>
<p>Дежурный работник IT отдела в затруднении. Он советуется со своим начальником, но тот тоже не знает что делать. Звонить вице-президенту компании среди ночи тоже не хочется. Становится тем человеком, который сорвал презентацию тоже не хочется. Скрепя сердце они дают сотруднику полный доступ. Нужно ли говорить, что за сотрудником X скрывается хакер, который провел большую подготовительную работу, выяснил логин/пароль одного из сотрудников, выучил внутреннюю организацию компании итд. Любое проникновение - это всегда многоходовка, умный хакер не будет ломиться сразу на главный сервер компании.</p>
<p>Другая история - компания хранит исходные коды своей операционной системы на сервере, к которому вообще нет доступа снаружи. Митник находит секретаршу, у которой есть доступ к этому серверу, звонит ей по внутреннему телефону, представляется кем-то из компании и под правдоподобно звучащим предлогом она архивирует нужные файлы и выкладывает их на FTP. Как Митнику удалось позвонить так, чтобы его звонок опознался как внутренний - взломом телефонных сетей он начал заниматься еще в подростковом возрасте.</p>
<p>Еще ситуация. Допустим вы системный администратор какой-то компании, адмнистрируете сервера, доступные через Интернет. Вы настоящий спец своего дела, все ненужные сервисы прикрыты, файрволы настроены, все последние патчи установлены. Вы подписаны на все нужные листы рассылки, чтобы получать уведомления о всех уязвимостях, как только они будут обнаружены. Вы ходите на работу в костюму, аккаратно подстрижены и спокойствию вашего сну может позавидовать младенец.</p>
<p>И тут появляется хакер, которому очень интересно, что такого вы прячете на сервере. Атака в лоб не принесла успехи, вы увидели следы в логах и только улыбнулись. Но хакер попался непростой, ранее он взломал компанию вендора вашей операционной системы, которая крутится на ваших серверах, получив доступ к исходным кодам системы и, что еще более важно, к базе данных секьюрити уязвимостей найденных в системе. Хакер проникает на ваш сервер, скачивает что ему было нужно и подчищает за собой логи. Ваш сон не потревожен. Вы, может быть, узнаете о взломе из газет, когда хакера поймают (если поймают).</p>
<p>Типичный баг репорт из базы данных Sun:</p>
<p style="padding-left: 30px;"><code>Synopsis: syslog can be used to overwrite any system file<br />
Keywords: security, password, syslog, overwrite, system<br />
Severity: 1<br />
Priority: 1<br />
Responsible Manager: kwd<br />
Description:<br />
syslog and syslogd feature of LOG_USER can be used to overwrite *any* system file. The obvious security violation is using syslog to overwrite /etc/passwd. This can be done to remote systems if LOGHOST is not set to localhost.<br />
bpowell: breakin code removed for security reason<br />
If you need a copy of the breakin code see Staci Way (contractor) (staciw@castello.corp).<br />
Work around: NONE except turning off syslog which is unacceptable<br />
Interest list: brad.powell@corp, dan.farmer@corp, mark.graff@Corp<br />
Comments: this one is pretty serious. It has already been used on sun-barr to break root, and is one of the few security bugs that work for 4.1.X as well as 2.X e.g. ANY Sun released OS.<br />
</code></p>
<p>Конечно же, Кевин напишет упомянутой в репорте Staci Way с внутреннего аккаунта Sun и выманит у нее нужный код.</p>
<p>И таких историй там десятки. Неудивительно, что Митником заинтересовалась FBI. Он скрывался от них более трех лет, меняя номер своего мобильного по своему желанию, поменяв несколько раз имя. Самое главное, что он не мог удержаться от проникновения в сети все новых и новых компаний. В конце концов это и привело к его поимке.</p>
<p>Ему удавалось скрываться до тех пор, пока он не проник на компьютер другого хакера, чем сильно расстроил последнего. Объединив усилия с FBI хакер сумел проследить за Митником и спустя некоторое время FBI удалось его задержать. После четырех лет в тюрьме Митник вышел белым и пушистым. Работает консультантом в области компьютерной секьюрити, выступает с докладами, уважаем обществом.</p>
<p>Могу так же посоветовать его же <a href="http://www.amazon.com/Art-Deception-Controlling-Element-Security/dp/076454280X/ref=pd_bxgy_b_img_b">Art of Deception</a> (Искусство вторжения). Там собраны истории проникновения, совершенные другими хакерами и записанные Митником. Тоже довольно интересно, но не хватает общей связующей нити.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/03/08/kevin-mitnik-ghost-in-the-wires/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Plan B</title>
		<link>http://www.volinrok.com/2012/02/29/plan-b/</link>
		<comments>http://www.volinrok.com/2012/02/29/plan-b/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 20:15:18 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=954</guid>
		<description><![CDATA[На прошедших выходных перестала работать часть сервисов компании Digital River. Для тех кто не в теме - Digital River объединила под своей крышей множество компаний занимающихся приемом оплаты по кредитным картам в онлайне. Им принадлежат RegNow, RegSoft, SWREG, ShareIt, DigiBuy и с десяток других, о которых уже все забыли. Больше других досталось SWREG, который был в [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-955" src="http://www.volinrok.com/wp-content/uploads/sbhn23l.jpg" alt="" width="400" height="364" /></p>
<p>На прошедших выходных перестала работать часть сервисов компании Digital River. Для тех кто не в теме - Digital River объединила под своей крышей множество компаний занимающихся приемом оплаты по кредитным картам в онлайне. Им принадлежат RegNow, RegSoft, SWREG, ShareIt, DigiBuy и с десяток других, о которых уже все забыли. Больше других досталось SWREG, который был в дауне 36 часов.</p>
<p>По-моим прикидкам только SWREG, который не самый крупный там, в обычный день обрабатывает платежей на миллион долларов, так что масштаб ущерба приличный. Клиентам SWREG, включая меня, пришлось срочно переключаться на другие способы приема платежей, а у кого запасного канала не было - тихонько клацали зубами в углу. Официально заявление - что-то случилось с железом, причем настолько разрушительное, что у админов волосы встали дыбом.</p>
<p>Какие из этого следуют выводы:</p>
<p>1. SWREG делает бэкапы, потери данных не было</p>
<p>2. Плана Б у SWREG нет</p>
<p>Тут самое время всем, у кого есть онлайновый бизнес, подумать, что будет с ними подобной ситуации. Что если сломается сервер, на котором рабоатет вебсайт? Что если произойдет пожар в датацентре? Что делать, если перестанет работать прием платежей? Как быстро получится поднять другой сервер в другом месте?</p>
<p>Для решения этой задачи мы используем выделенные сервера, но на них крутятся виртуальные машины, так проще переносить с сервера на сервер.</p>
<p>Каждая виртуальная машина есть в двух экземплярах. Один активный и рабочий, другой запасной, на другом сервере. Если один сервер умирает, включается виртуальная машина на другом сервере и переключается DNS.</p>
<p>Посколько резервная машина выключена -  на ней не будет самой свежей версии данных. Для нас это не так критично, но для кого-то будет принципиально. Можно все время держать ее включенной и накатывать бэкапы с основной машины.  Если и другие способы, зависит уже от задач приложений которые у вас там работают.</p>
<p>Для дополнительной надежности стоит сервера держать в разных датацентрах. Я пока этого не делаю, слишком мне нравится мой провадйер <a href="http://hivelocity.net">Hivelocity</a>.</p>
<p>Интересна реакция Digital River на это проишествие. Обычно с ними не так просто связаться в случае каких-то проблем, скажем на сайте SWREG нет в принипе никаких телефонов. Сейчас они опубликовали сразу кучу способов связаться с ними через Twitter, Facebook, LinkedIn и Google+. Помимо этого они дают вендорам один месяц бесплатного сервиса в апреле (у SWREG это 4.5% от суммы продаж). Пустячок, а приятно.</p>
<p>Что еще забавно, один из немногих оставшихся независимых e-commerce провадйеров в нашей индустрии, CleverBridge, тут же разослал письмо счастья клиентам DigitalRiver, предлагая перейти к ним. Как раз тот случай, когда можно оправдать спам.</p>
<p>Все идем работать над планом Б.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/02/29/plan-b/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Шароварный тест</title>
		<link>http://www.volinrok.com/2012/02/28/sharovarnyj-test/</link>
		<comments>http://www.volinrok.com/2012/02/28/sharovarnyj-test/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 05:57:07 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Lifestyle]]></category>
		<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=950</guid>
		<description><![CDATA[Ок, вы написали программу и продаете ее через Интернет. Делает ли это вас настоящим шароварщиком? Сейчас проверим. Ставьте себе по единичке за каждый положительный ответ. 1. Вы проверяете число продаж перед тем как ложиться спать и перед завтраком 2. Вы измеряете цену вещей (машина, квартира, игровая приставка) в количестве лицензий программы, которые нужно продать 3. [...]]]></description>
			<content:encoded><![CDATA[<p>Ок, вы написали программу и продаете ее через Интернет. Делает ли это вас настоящим шароварщиком? Сейчас проверим. Ставьте себе по единичке за каждый положительный ответ.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-951" style="border-image: initial; border: 1px solid black;" title="Work-From-Home" src="http://www.volinrok.com/wp-content/uploads/Work-From-Home.jpg" alt="" width="413" height="310" /></p>
<p>1. Вы проверяете число продаж перед тем как ложиться спать и перед завтраком</p>
<p>2. Вы измеряете цену вещей (машина, квартира, игровая приставка) в количестве лицензий программы, которые нужно продать</p>
<p>3. Вы отдаете на аутсоурсинг работу кому-то, кого никогда не видели и понятие не имеете где он живет</p>
<p>4. Заказывая гостиницу вас больше интересует хороший ли там интеренет, чем качество кухни</p>
<p>5. Ваш продукт получил минимум 20 пятизвездочных наград на софтовых архивах</p>
<p>6. Вы знаете, что такое CTR, CPC и CPM.</p>
<p>7. Вы упрашивали друзей и родственников проголосовать за <a href="http://www.facebook.com/pages/PHPRunner/101291953274682">страничку вашего продукта</a> на Facebook.</p>
<p>8. Вы настроили компьютер или телефон, чтобы он издавал особый звук при получени очередного уведомления о покупке</p>
<p>9. Вашу программу взламывали как минимум один раз</p>
<p>10. Вы советовали проблемному клиенту воспользоваться продуктом конкурента</p>
<p>11. Вы отвечали на письма в поддержку сидя перед компьтером в одних трусах</p>
<p>12. Вы настроили уведомления в Гугле и Твитере на каждое новое упоминание вашго продукта</p>
<p>13. Вас начинает колбасить если вы не проверяли почту несколькоч часов</p>
<p>14. Последний раз вы ставили будильник, когда собирались в отпуск и боялись пропустить самолет</p>
<p>15. Ваши родственники считают что у вас нет <a href="http://www.volinrok.com/2008/05/14/you-an-idiot-why-dont-you-get-a-real-job/">"настоящей работы"</a></p>
<p>16. Вы владете минимум десятком доменов</p>
<p>17. Вам приходилось устранять ошибки в вашей программе или на вебсайте в то время как вы были в отпуске на отдыхе</p>
<p>18. У вас был как минимум один чаржбэк</p>
<p>19. На вашу программу ругался как минимум один антивирус</p>
<p>20. Вы используете как минимум три разных почтовых адреса в течение дня</p>
<p>21. Вам приходилось отвечать людям на вопрос "И тебе удается зарабатывать на жизнь <em>этим</em>?"</p>
<p>22. Вам приходилось отвечать на вопрос в техподдержку на языке, которого вы не знаете при помощи Google Translate</p>
<p>23. Вы говорите о свой компании "мы", даже если работаете в одиночку</p>
<p>24. К вам прибегал кто-то с блестящей идеей, обещая дать 50% от прибыли, если вы на 100% реализуете ее самостоятельно</p>
<p>25. Последний раз вы носили костюм с галстуком на свадьбе или похоронах</p>
<p>Если вы набрали 20 и более очков - вы настоящий шароварщик.</p>
<p><a href="http://successfulsoftware.net/2012/02/23/microisv-test/">Оригинал на английском</a> за авторством Энди Брайса</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2012/02/28/sharovarnyj-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Автореспондеры &#8211; зло</title>
		<link>http://www.volinrok.com/2011/09/29/avtorespondery-zlo/</link>
		<comments>http://www.volinrok.com/2011/09/29/avtorespondery-zlo/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 02:23:52 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=947</guid>
		<description><![CDATA[Ничто меня не бесит так, как автореспондеры. После каждой рассылки насыпается пара сотен автоматических ответов. Я получил ваше письмо, я не получил, но получу и прочту, меня нет на месте, наш специалист свяжется с вами, я в отпуске, я родил малыша, я уволился. Да кому какое дело, что там у тебя. Не о тебе речь [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-948" title="recompile_linux_on_vacation" src="http://www.volinrok.com/wp-content/uploads/recompile_linux_on_vacation.png" alt="" width="500" height="550" /></p>
<p>Ничто меня не бесит так, как автореспондеры. После каждой рассылки насыпается пара сотен автоматических ответов. Я получил ваше письмо, я не получил, но получу и прочту, меня нет на месте, наш специалист свяжется с вами, я в отпуске, я родил малыша, я уволился. Да кому какое дело, что там у тебя. Не о тебе речь вообще.</p>
<p>Единственный вариант, когда автореспондеры смысл имеют - это внутренняя переписка большой компании. "Я в отпуске. По срочным вопросам свяжитесь с тем-то". Точка. Не должен бизнес компании зависеть от того, в отпуске ли какой-то сотрудник или нет. В конце концов есть форма на сайте, есть телефон, есть емайл адреса, которые мониторит несколько сотрудников. Все остальное от лукавого.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<blockquote><p>&nbsp;</p></blockquote>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/09/29/avtorespondery-zlo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Traveliving или живи путешествуя</title>
		<link>http://www.volinrok.com/2011/09/26/traveliving-ili-zhivi-puteshestvuya/</link>
		<comments>http://www.volinrok.com/2011/09/26/traveliving-ili-zhivi-puteshestvuya/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 18:22:03 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=934</guid>
		<description><![CDATA[Мотивационный пост. Коллекция блогов людей и семей, сделавших путешествие образом жизни. Как обычно, я им всем немного завидую. 1. Джерри и Адриана Джерри - разработчик приложений для iPhone. Путешествует с женой Адрианой, работает откуда придется и у него это неплохо получается. 2. The Unstoppable family Вы скажете стиль жизнь-путешествие не подходит для семейных пар с [...]]]></description>
			<content:encoded><![CDATA[<p>Мотивационный пост. Коллекция блогов людей и семей, сделавших путешествие образом жизни. Как обычно, я им всем немного завидую.</p>
<p>1. <a href="http://www.shenventure.com/">Джерри и Адриана</a></p>
<p>Джерри - разработчик приложений для iPhone. Путешествует с женой Адрианой, работает откуда придется и у него это неплохо получается.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/hongkong.jpg"><img class="aligncenter size-medium wp-image-938" title="Hong Kong" src="http://www.volinrok.com/wp-content/uploads/hongkong-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>2. <a href="http://unstoppablefamily.com/">The Unstoppable family</a></p>
<p>Вы скажете стиль жизнь-путешествие не подходит для семейных пар с детьми и будете в чем-то правы. Но Unstoppable family путешествует с дочерью уже три года и все у них получается. Дочь ходит в школы, там где они живут в данный момент и так же занимаются домашним обучением.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/Office-at-Pipa-Beach-Club.jpg"><img class="aligncenter size-full wp-image-940" title="Office-at-Pipa-Beach-Club" src="http://www.volinrok.com/wp-content/uploads/Office-at-Pipa-Beach-Club.jpg" alt="" width="720" height="540" /></a></p>
<p>Советую посмотреть <a href="http://unstoppablefamily.com/2011/09/you-asked-so-we-answered/">вопросы и ответы</a>. Самым полезным для путешествий иностранным языком они считают испанский.</p>
<p>Зарабатывают они на жизнь какой-то мутной ерундой типа MLM, но в остальном интересно почитать.</p>
<p>3. <a href="http://traveliving.org/">Аджей и Маша</a></p>
<p>Профессиональные трэвеливеры, в путешествии уже несколько лет. Сдают квартиру в Москве, немного подрабатывают фрилансерством и блогом. Путешествуют по Юго-Восточной Азии. Пишут интересно.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/panglao-alona-beach41.jpg"><img class="aligncenter size-full wp-image-941" title="panglao-alona-beach41" src="http://www.volinrok.com/wp-content/uploads/panglao-alona-beach41.jpg" alt="" width="777" height="518" /></a></p>
<p>4. <a href="http://mirputeshestvii.ru/community/blogs/axel/drugaya_zhizn/">Другая жизнь</a></p>
<p>Axel - фрилансер, любящий узнавать что-то новое. По его словам, путешествия, даже самые экзотические, это не так дорого.</p>
<p>Рекомендую почитать про <a href="http://mirputeshestvii.ru/read/reports/voshozhdenie_na_kilimandzharo_v_fevrale_2011/">восхождение на Килиманджаро</a>, впечатляет.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/mawenzi.jpg"><img class="aligncenter size-full wp-image-939" title="mawenzi" src="http://www.volinrok.com/wp-content/uploads/mawenzi.jpg" alt="" width="600" height="399" /></a></p>
<p>5. <a href="http://shooow.me">Shooow me</a></p>
<p>Владимир и Ольга совмещают приятное с полезным, путешествуют, ведут журнал и находят спонсоров, которые им помогают со всеми этими делами. Вернулись из путешествия по Юго-Востоной Азии и планируют путешествие в Южную Америку.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/87fca1.jpg"><img class="aligncenter size-full wp-image-937" title="87fca1" src="http://www.volinrok.com/wp-content/uploads/87fca1.jpg" alt="" width="720" height="443" /></a></p>
<p>&nbsp;</p>
<p><strong>А что тебе не дает сорваться с места прямо сейчас?</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/09/26/traveliving-ili-zhivi-puteshestvuya/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>What client wants client gets</title>
		<link>http://www.volinrok.com/2011/09/23/what-client-wants-client-gets/</link>
		<comments>http://www.volinrok.com/2011/09/23/what-client-wants-client-gets/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 14:24:04 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=927</guid>
		<description><![CDATA[&#160; Размышлизмы, навеянные рассылками по клиентской базе. 1. Распродажи аля Groupon работают Спасибо Групону, народ привык покупать всякую малонужную ерунду со значительной скидкой в надежде когда-нибудь воспользоваться ей. Рецепт: возьмите пару-тройку своих продуктов, которые продаются слабо,  объедините их в бандл, сделайте скидку процентов 60-80 и сделайте рассылку по списку клиентов. Для убедительности ограничьте срок действия [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><a href="http://www.volinrok.com/wp-content/uploads/analogy.jpg"><img class="aligncenter size-medium wp-image-930" style="border: 1px solid black;" title="What client wants client gets" src="http://www.volinrok.com/wp-content/uploads/analogy-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Размышлизмы, навеянные рассылками по клиентской базе.</p>
<h3><strong>1. Распродажи аля Groupon работают</strong></h3>
<p>Спасибо Групону, народ привык покупать всякую малонужную ерунду со значительной скидкой в надежде когда-нибудь воспользоваться ей. Рецепт: возьмите пару-тройку своих продуктов, которые продаются слабо,  объедините их в бандл, сделайте скидку процентов 60-80 и сделайте рассылку по списку клиентов. Для убедительности ограничьте срок действия распродажи и повесьте часы с обратным отсчетом.</p>
<p>Главное не увлечься и не включать продукты, которые и так хорошо продаются, залезете себе в карман. Работает как часы.</p>
<h3>2. Повторенье - мать ученья</h3>
<p>Любую рассылку с горячим предложением стоит повторить. Кто-то не успел купить, кто-то забыл, кто-то вообще не получил. Дайте им второй шанс. Это как потрясти яблоню еще раз. Упавшим яблокам уже все равно, а несколько новых упадет.</p>
<h3>3. Как понимать клиентов.</h3>
<p>Это самое интересное. Разговор с клиентом больше всего напоминает общение с женщиной. Думает одно, говорит другое, а ожидает от тебя третьего.</p>
<p><strong>Клиент говорит:</strong> хочу чтобы было такое место, где люди могут обмениваться своими шаблонами.</p>
<p><strong>Как это надо понимать:</strong> хочу чтобы другие люди делали шаблоны, а я их скачивал, желательно на халяву. Ну или в крайнем случае за небольшую копеечку (смотри пункт первый).</p>
<p>Пример из жизни. Сделали крутую фичу - редактор стилей, где можно полностью настраивать внешний вид приложения без какого-либо знаний HTML или CSS. Просто ставь галочки, выбирай опции и наслаждайся. Нужная, важная фича, делали долго и наконец выложили в открытый доступ.</p>
<p>Чтобы подстегнуть процесс создания иобмена стилями запустили конкурс. Нужно сделать свой стиль и прислать его нам. Сроку дали десять дней. Десять лучших стилей получают по 100 долларов каждый. В принципе не так плохо за пару часов работы.</p>
<p>Повторюсь, нужно просто делать то, что ты обычно делаешь, просто прислать файлы стилей на конкурс и, с большой вероятностью, получить приз.   Рассылку получают несколько десятков тысяч человек. Результат: свои работы прислали три человека. Мораль придумайте сами.</p>
<p>Удачных вам рассылок!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/09/23/what-client-wants-client-gets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Лайфхак от Джерри Сейнфелда</title>
		<link>http://www.volinrok.com/2011/03/03/lajfkhak-ot-dzherri-sejnfelda/</link>
		<comments>http://www.volinrok.com/2011/03/03/lajfkhak-ot-dzherri-sejnfelda/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 19:32:41 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=920</guid>
		<description><![CDATA[История от лица разработчика Брэда Исаака. Много лет назад, когда Seinfeld еще было новым шоу, Джерри Сейнфелд разъезжал с концертами по стране. В то время я тусовался по клубам, пробуя свои силы как стэндап комик. Одним вечером я был в клубе, где выступал Сейнфелд. Мне удалось его перехватить до выхода на сцену и я спросил, [...]]]></description>
			<content:encoded><![CDATA[<p><em>История от лица разработчика <a href="http://www.persistenceunlimited.com/" target="_blank">Брэда Исаака</a>.</em></p>
<p><img class="alignleft size-full wp-image-922" style="margin-left: 15px; margin-right: 15px; border: 1px solid black;" title="calendar" src="http://www.volinrok.com/wp-content/uploads/calendar.jpg" alt="" width="149" height="120" />Много лет назад, когда Seinfeld еще было новым шоу, Джерри Сейнфелд разъезжал с концертами по стране. В то время я тусовался по клубам, пробуя свои силы как стэндап комик. Одним вечером я был в клубе, где выступал Сейнфелд. Мне удалось его перехватить до выхода на сцену и я спросил, есть ли у него какой-нибудь совет для начинающего комика.</p>
<p>Он сказал, что чтобы стать хорошим комиком нужно писать шутки и есть только один способ - писать их каждый день. Однако он не ограничился этим и рассказал мне о приеме, которым успешно пользовался сам, чтобы заставлять себя писать каждый день.</p>
<p>Нужно купить и сделать самому большой настенный календарь на целый год и повесить его на видном месте. Вооружиться большим красным маркером.</p>
<p>Каждый день, когда задача выполнена, нужно отмечать этот день жирным красным крестом. Через несколько дней крестики выстраиваются в цепочку. Продолжай заниматься этим и цепочка будет расти. Тебе будет приятно на нее смотреть, особенно если продержаться несколько недель. Все что от тебя требуется - не разорвать эту цепочку.</p>
<p>"Не разорви цепочку", повторил он еще раз.</p>
<p>На протяжении многих лет я пользовался этой техникой в самых различных областях. Я использовал ее для физических упражнений, для изучения языков программирования , для построения вебсайтов и бизнесов.</p>
<p>Это работает. В большинстве ситуаций не единовременный рывок приводит нас к цели, но ежедневный, скрупулезный труд. Пропусти один день, и становится легче пропустить следуюший.</p>
<p>Задумайся на минутку - что может оказать наибольшее влияние на твою жизнь или бизнес, если ты будешь заниматься этим ежедневно. Напиши эту цель на календаре и начинай делать отметки. Начни сегодня и разработацй свой первый красный крест.<br />
<strong><br />
Не разорви цепочку!</strong></p>
<p>Источник: <a href="http://lifehacker.com/#!281626/jerry-seinfelds-productivity-secret" target="_blank">Lifehacker</a><strong><br />
</strong></p>
<p>------------------------------</p>
<p>От себя - отличная идея. Осталось придумать, чем бы стоило заниматься каждый день. Писать в блог - нет столько тем, да и неинтересно. Выходить на пробежку каждый день - лениво. Может начать книгу писать?</p>
<p><strong>Ссылки</strong></p>
<p><a href="http://www.volinrok.com/2010/12/07/pochemu-mint-pobedil-wesabe/" target="_blank">Печально известный</a> финансовый стартап Wesabe выложил исходники своего парсера сайтов банков и других финансовых организаций на <a href="https://github.com/wesabe/ssu">Github</a>. <a href="https://www-stage3.wesabe.com/groups/227-open-source-wesabe/discussions/5471-automatic-uploader#comment_39993">Вот тут</a> немного дополнительной информации и обсуждение.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/03/03/lajfkhak-ot-dzherri-sejnfelda/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>12 уязвимостей веб-приложений о которых должен знать каждый разработчик</title>
		<link>http://www.volinrok.com/2011/02/25/12-uyazvimostej-veb-prilozhenij-o-kotorykh-dolzhen-znat-kazhdyj-razrabotchik/</link>
		<comments>http://www.volinrok.com/2011/02/25/12-uyazvimostej-veb-prilozhenij-o-kotorykh-dolzhen-znat-kazhdyj-razrabotchik/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 04:36:02 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=878</guid>
		<description><![CDATA[Черновик статьи о типовых уязвимостях веб-приложений. Дайте знать если что-то упустил или где-то ошибся. ------------------------ Данная статья не содержит никаких откровений. В первую очередь информация о типовых уязвимостях будет полезна начинающим. Опытные разработчики все это знают, или должны знать, если считают себя таковыми. Большинство примеров кода не привязаны к какому-либо конкретному языку программирования, но для [...]]]></description>
			<content:encoded><![CDATA[<p>Черновик статьи о типовых уязвимостях веб-приложений. Дайте знать если что-то упустил или где-то ошибся.</p>
<p>------------------------</p>
<p>Данная статья не содержит никаких откровений. В первую очередь информация о типовых уязвимостях будет полезна начинающим. Опытные разработчики все это знают, или должны знать, если считают себя таковыми.</p>
<p>Большинство примеров кода не привязаны к какому-либо конкретному языку программирования, но для наглядности я буду использовать PHP.</p>
<p>Итак, поехали.</p>
<h3>1. SQL injection</h3>
<p>Допустим у вас есть вебсайт с формой ввода имени пользователя. Для проверки наличия имени в базе данных  вы используте вот такой код:</p>
<pre class="php"><span style="color: #0000ff;">$query</span> = <span style="color: #ff0000;">&quot;SELECT * FROM `Users` WHERE UserName='&quot;</span> . <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Username&quot;</span><span style="color: #66cc66;">&#93;</span>. <span style="color: #ff0000;">&quot;'&quot;</span>;
<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$query</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>где $_POST["Username"] - введенное пользователем имя.</p>
<p>Пользователю достаточно ввести вот такое значение в поле Username</p>
<pre>' or '1'='1
</pre>
<p>чтобы получился запрос, который всегда возвращает данные:</p>
<pre class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #ff0000;">`Users`</span> <span style="color: #993333; font-weight: bold;">WHERE</span> UserName = <span style="color: #ff0000;">''</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #ff0000;">'1'</span>=<span style="color: #ff0000;">'1'</span></pre>
<p>Для тех баз данных, которые поддерживают выполнение несколько запросов в одном пакете, злоумышленник может исполнить запрос удаляющий или изменяющий данные.</p>
<p>Пример такого ввода:</p>
<pre>a';DROP TABLE `Users`; SELECT * FROM `userinfo` WHERE 't' = 't</pre>
<p>Запрос на выходе:</p>
<pre class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #ff0000;">`Users`</span> <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #ff0000;">`UserName`</span> = <span style="color: #ff0000;">'a'</span>;DROP <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`Users`</span>; <span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #ff0000;">`userinfo`</span> <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #ff0000;">'t'</span> = <span style="color: #ff0000;">'t'</span></pre>
<p>Два основных способа избежать SQL injection:</p>
<ul>
<li><strong>параметризованные запросы</strong></li>
</ul>
<p>Наиболее надежный метод, но не всегда подходит. В PHP можно для этой цели использовать MySQLi</p>
<pre class="php"><span style="color: #0000ff;">$stmt</span> = <span style="color: #0000ff;">$db</span>-&gt;<span style="color: #006600;">prepare</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'update people set name = ? where id = ?'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$stmt</span>-&gt;<span style="color: #006600;">bind_param</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'si'</span>,<span style="color: #0000ff;">$name</span>,<span style="color: #0000ff;">$id</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$stmt</span>-&gt;<span style="color: #006600;">execute</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<ul>
<li><strong>escaping</strong></li>
</ul>
<p>В PHP для этого есть функция <a href="http://php.net/manual/en/function.mysql-real-escape-string.php" target="_blank">mysql_real_escape_string</a>, которая заменит опасные символы на escape последовательности. Наш пример теперь будет выглядеть вот так:</p>
<pre class="php"><span style="color: #0000ff;">$query</span> = <a href="http://www.php.net/sprintf"><span style="color: #000066;">sprintf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;SELECT * FROM `Users` WHERE UserName='%s'&quot;</span>,
                  <a href="http://www.php.net/mysql_real_escape_string"><span style="color: #000066;">mysql_real_escape_string</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Username&quot;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$query</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<h3>2. Сross Site Scripting (XSS)</h3>
<p>XSS уязвимости могут быть подвержены динамические вебсайты, где пользователи вводят какие-то свои данные, которые потом будут показаны на странице: форумы, гостевые книги, комментарии блогам и другое. Идея XSS заключается во встраивании в текст комментария какого-то Javascript кода, который исполнится, когда страницу откроет другой пользователь.</p>
<p>Чем может навредить безобидный джаваскрипт? Довольно многим, от открытие левых сайтов в попапе или простого завешивания браузера до воровства куки. Последнее уже может привести к выполнению другим пользователем действий на этом сайте от вашего имени. Рассмотрим минимальный пример.</p>
<p>Форма для ввода текста:</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">&lt;form</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;myFrom&quot;</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;showResults.php&quot;</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;post&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">&lt;textarea</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;myText&quot;</span> <span style="color: #000066;">rows</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">cols</span>=<span style="color: #ff0000;">&quot;30&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/textarea&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Submit&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;submit&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form&gt;</span></span>
&nbsp;</pre>
<p>Файл showResults.php:</p>
<pre class="php"><a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;You typed this:&quot;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'myText'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Мы видим, что введенный текст никак не обрабатывается и выводится на страницу в исходном виде. Теперь рассмотрим такой пример ввода:</p>
<pre class="html4strict"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>myRef = window.open('http://www.google.com','mywin',
'left=20,top=20,width=700,height=500,toolbar=1,resizable=0');<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></pre>
<p>Нетрудно видеть, что javascript код исполнится после сабмита формы. Лечится пропусканием ввода через htmlentities() непосредственно перед показом:</p>
<pre class="php"><a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;You typed this:&quot;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/htmlentities"><span style="color: #000066;">htmlentities</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'myText'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<h3>3. Использование HTTPS</h3>
<p>Здесь все очень просто. Если ваше приложение работает с финансовыми, медицинскими или просто с очень важными данными - используйте HTTPS. Данные между браузером и веб-сервером передаются в зашифрованном виде и не могут быть расшифрованы в случае перехвата сниффером.</p>
<h3>4. Предотвращения скачивания пользовательских файлов по прямой ссылке</h3>
<p>Рассмотрим веб-приложение, где пользователи могут закачивать на сервер свои личные файлы. Некоторые файлы могут быть конфиденциальными и не должны быть доступны никому, кроме их владельца.</p>
<p>Есть закачивать все файлы в директорию вида <strong>public_html/files</strong>, то файл mysecretdoc.pdf будет доступен любому желающему по прямой ссылке <strong>http://mysecurewebsite.com/files/mysecretdoc.pdf</strong>. </p>
<p>Есть как минимум два способа предотвратить эту ситуацию:</p>
<ul>
<li>вынеcти директорию files на уровень выше, чтобы она была вне корня вебсайта и не была доступна через веб</li>
<li>использовать .htaccess для запрета прямого скачивания</li>
</ul>
<h3>5. Пароли пользователей</h3>
<p>- Не хранить пароли открытым текстом</p>
<p>Достаточно очевидное решение. Если мы будем хранить хэши паролей (MD5+salt), последстивия утечки таблицы паролей становятся намного менее серьезными, особенно в сочетании со следующим пунктом.</p>
<p>- Требовать, чтобы пароли удовлетворяли определенными правилам сложности и заставлять менять их через какое-то время. Как пользователь я не очень люблю этот метод, но он работает.</p>
<p>- Использовать комбинацию пароля (пин-кода) и устройства типа <a href="http://www.rsa.com/node.aspx?id=1156" target="_blank">RSA токена</a> для логина. Подойдет для банковских или внутрикорпоративных приложений.</p>
<p>- Сделать авторизацию через сторонний сервис, такой как Facebook, Twitter или OpenID. Пусть у них болит голова как уберечь пароли.</p>
<h3>6. Шифрование и обфускация кода</h3>
<p>Здесь важно понимать, что шифрование и обфускация защищают от изменения и понимания кода, но не от его исполнения. Защифрованный код исполняется точно так же как и исходный и, более того, модуль расшифровки поставляется вместе с зашифрованным кодом и можеи быть использован для декодирования. Если злоумышленник получил доступ к вашему серверу, шифрование кода мало чем поможет.</p>
<p>Есть только один сценарий, когда это дело работает в качестве защиты от исполнения кода. Код расшифровки может устанавливаться как модуль на сервер и, если в руки злоумышленнику попал только сам зашифрованный код, без этого модуля он его не исполнит.</p>
<p><strong>Шифрование кода для PHP:</strong> <a href="http://www.ioncube.com/">ionCube</a>, <a href="http://www.zend.com/en/products/guard/">ZendGuard</a>, <a href="http://www.sourceguardian.com/">SourceGuardian</a></p>
<p><strong>Обфускация:</strong> <a href="http://www.semdesigns.com/products/obfuscators/PHPObfuscator.html">Thicket Obfuscator for PHP</a></p>
<h3>7. Шифрование данных</h3>
<p>Шифрование данных защищает от ситуации, когда база данных попала в чужие руки, но нет кода, который с ней работает.</p>
<p>Технически ничего сложного здесь нет. Шифрование/декодирование можно реализвать как средствами языка программирования так и в самой БД. Второй метод предпочтительнее, особенно если нужно реализовать поиск по зашифрованным данным.</p>
<p>Вот как это можно сделать для MySQL.</p>
<p><strong>Шифрование с помощью триггеров</strong></p>
<pre class="sql">delimiter |
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> insert_encrypt BEFORE <span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ON</span> cars
  <span style="color: #993333; font-weight: bold;">FOR</span> EACH ROW BEGIN
    <span style="color: #993333; font-weight: bold;">SET</span> NEW.Model = AES_ENCRYPT<span style="color: #66cc66;">&#40;</span>NEW.Model,<span style="color: #ff0000;">&quot;my passphrase&quot;</span><span style="color: #66cc66;">&#41;</span>;
  END;
|
&nbsp;
delimiter |
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> update_encrypt BEFORE <span style="color: #993333; font-weight: bold;">UPDATE</span> <span style="color: #993333; font-weight: bold;">ON</span> cars
  <span style="color: #993333; font-weight: bold;">FOR</span> EACH ROW BEGIN
    <span style="color: #993333; font-weight: bold;">SET</span> NEW.Model = AES_ENCRYPT<span style="color: #66cc66;">&#40;</span>NEW.Model,<span style="color: #ff0000;">&quot;my passphrase&quot;</span><span style="color: #66cc66;">&#41;</span>;
  END;
|</pre>
<p><strong>Декодирование в SQL запросе</strong></p>
<pre class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span>
...
AES_DECRYPT<span style="color: #66cc66;">&#40;</span>Model,<span style="color: #ff0000;">&quot;my passphrase&quot;</span><span style="color: #66cc66;">&#41;</span>,
...
<span style="color: #993333; font-weight: bold;">FROM</span> carscars</pre>
<p><strong>Бонус для параноиков</strong></p>
<p>В качестве эксперимента можно использовать пароль пользователя в качестве фразы шифрования данных. Если пользователей в системе несколько, персональные данные каждого из них шифруются своим собственным паролем. В таком случае даже получив доступ к коду или к базе данных злоумышленник не сможет расшифровать данные.</p>
<p>Из минусов:<br />
- при смене пароля придется перешифровать данные<br />
- в случае утери пароля восстановить данные не получится<strong> </strong></p>
<h3>8. Защита данных сессии (PHP, shared server)</h3>
<p>В случае, когда ваше приложение хостится вместе с сотней других на одном сервере, кто-то может получить доступ ко всему серверу и прочитать или подделать переменные сессии.</p>
<p>Содержание типичного файла сессии PHP:</p>
<pre>userName|s:5:"admin";accountNumber|s:9:"123456789";
</pre>
<p>Решение:<br />
- шифровать переменные сессии<br />
- хранить данные сессии в БД. В PHP можно переопределить обработчик сессии с помощью функции <a href="http://php.net/manual/en/function.session-set-save-handler.php" target="_blank">session_set_save_handler<br />
</a></p>
<h3>9. Отключите показ сообщений об ошибках</h3>
<p>Как только система переводится в режим продакшен убедитесь что никакие необработанные сообщения об ошибках не будут показаны пользователю. Это может дать информацию о структуре базе данных или о структуре приложения.</p>
<p>Как минимум, сообщения об ошибках стоит отключить. В PHP это можно сделать вот так:</p>
<pre class="php"><a href="http://www.php.net/error_reporting"><span style="color: #000066;">error_reporting</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
@<a href="http://www.php.net/ini_set"><span style="color: #000066;">ini_set</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'display_errors'</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Наиболее же правильный метод это перехват сообщений об ошибке, запись их в БД, отправка уведомления разработчику итд. В PHP перехват сообщений об шибках делается с помощью функции <a href="http://php.net/set_error_handler">set_error_handler()</a>. И <a href="http://insomanic.me.uk/post/229851073/php-trick-catching-fatal-errors-e-error-with-a">вот еще пример</a> перехвата фатальных ошибок, которые нельзя перехватить с помощью set_error_handler().</p>
<h3>10. Защитите соединение между базой данных и приложением</h3>
<p>Применимо к ситуации когда база данных расположена на другом сервере. <a href="http://www.madirish.net/?article=244" target="_blank">Вот статья</a>, которая рассказывает как создать SSL тоннель между MySQL и PHP.</p>
<h3>11. Защита от form spoofing</h3>
<p>Допустим у вас есть форма редактирования данных пользователя вот с таким УРЛ: <strong>http://example.com/edit_user.php?id=12345</strong>. Ничто не мешает пользователю 12345 поменять номер аккаунта в УРЛ и попытаться отредактировать другого пользователя. Простая проверка на стороне сервера пресекает эти попытки на корню.</p>
<p>Неискушенный прграммист может подумать, что заменив GET на POST мы избавимся от номеров аккаунтов в УРЛ и закроем уязвимость. Разумеется это не так. Сохранив страницу на свой компьютер и изменив данные формы, злоумышленник может подделать POST запрос.</p>
<p>Допустим у вас есть интернет магазин, в котором цена продукта берется из поля на форме. Поменяв значение поля, злоумышленник сможет купить товар по более низкой цене.</p>
<p>Эта тема плотно перекликается с валидацией всех данных, вводимых пользователем. Допустим у вас есть радио-кнопка с выбором пола.</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;gender&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;radio&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;m&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>Male
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;gender&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;radio&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;f&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>Female</pre>
<p>Зная, что значение этого поля может быть только m или f, программист может посчитать проверку этого поля необязательным и записать его в базу данных в виде как оно есть.</p>
<p>Злоумышленник может сохранить эту страницу себе на диск и поменять ее следующим образом.</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;gender&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;m';DROP TABLE `Users`; ... &quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span></pre>
<p>Даже если вы обработаете ввод с помощью mysql_real_escape_string(), значение все равно получится слишком длинным для односимвольного поля и поломает запрос (вот для чего мы советуем отключать сообщения об ошибках в продакшен версии).</p>
<p>Хорошим решением будет усечение этого поля до одного символа:</p>
<pre>substr($_POST['gender'],0,1)
</pre>
<h3>12. Cross-site request forgery (CSRF)</h3>
<p>Эта уязвимость менее известна чем XSS, хотя не менее опасна. Представим себе форум, где участник Vasya постит сообщние, содержащее вот такой вот код:</p>
<pre class="html4strict"><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000; font-weight: bold;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;http://mysecurebank.com/withdraw?account=petya&amp;amp;amount=1000000&amp;amp;for=vasya&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span></pre>
<p>Когда эту страницу откроет участник Petya, браузер исполнит запрос</p>
<pre>http://mysecurebank.com/withdraw?account=petya&amp;amount=1000000&amp;for=vasya</pre>
<p>Проблема в том, что если банк хранит данные доступа в куках, Petya будет залогинен автоматически и транзакция совершится от его имени, о чем он, конечно, и не подозревает.</p>
<p>Первая мысль которая приходит в голову - заметить GET на POST на всех важных формах (или вообще на всех). К сожалению это не решает проблему полностью. Ничто не мешает злоумышленнику разместить вот такую форму на своем вебсайте:</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">&lt;form</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;f&quot;</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;http://mysecurebank.com/withdraw&quot;</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;post&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;account&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;petya&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;amount&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1000000&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;for&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;vasya&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form&gt;</span></span>
&nbsp;</pre>
<p>Если Васе удастся заманить Петю на свой вебсайт - форма будет отправлена и цель достигнута. Еще одна причина не ходить по подозрительным вебсайтам.</p>
<p><strong>Как с этим бороться?</strong></p>
<ul>
<li>проверять значение HTTP реферера. Должно быть всегда с вашего собственного вебсайта. К сожалению положиться на это дело полностбю нельзя, так как многие прокси сервера могут его не передавать. К тому же его не так сложно подделать.</li>
<li>использовать скрытое поле в форме с секретным значением, как правило привязанным к сессии пользователя. Злоумышленник не может прочитать форму от имени Пети, поэтому секретное значение окажется для него неизвестным (XmlHttpRequest не может выполнить запрос к другому серверу).</li>
<li>Дополнительно отправлять куки через форму (прочитать с помощью джаваскрипта и вставить в форму). Если куки переданные через форму не совпадают с куками из заголовка - транзакцию не проводить.</li>
<li>Ограничение времени жизни кук</li>
</ul>
<p><strong>Дополнительная информация:</strong><br />
<a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">http://en.wikipedia.org/wiki/Cross-site_request_forgery</a><br />
<a href="http://www.codinghorror.com/blog/2008/09/cross-site-request-forgeries-and-you.html" target="_blank">http://www.codinghorror.com/blog/2008/09/cross-site-request-forgeries-and-you.html</a></p>
<h3>Заключение</h3>
<p>Теперь хорошие новости. От большинства этих уязвимостей несложно защититься. Многие PHP фреймворки (<a href="http://www.yiiframework.com/" target="_blank">Yii</a>, <a href="http://www.cakephp.org" target="_blank">CakePHP</a>, <a href="http://www.codeigniter.com/" target="_blank">CodeIgniter</a>, <a href="http://framework.zend.com/home" target="_blank">Zend</a>, <a href="http://www.symfony-project.com/" target="_blank">Symfony</a>) и генераторы кода (<a href="http://xlinesoft.com/phprunner/index.htm" target="_blank">PHPRunner</a>) имеют встроенную защиту от большиства уязвимостей. Тем не менее, стоит понимать, как оно работает, чем чревато и как защититься. Предупрежден - значит вооружен.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/02/25/12-uyazvimostej-veb-prilozhenij-o-kotorykh-dolzhen-znat-kazhdyj-razrabotchik/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Почему Mint победил Wesabe</title>
		<link>http://www.volinrok.com/2010/12/07/pochemu-mint-pobedil-wesabe/</link>
		<comments>http://www.volinrok.com/2010/12/07/pochemu-mint-pobedil-wesabe/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 07:04:46 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[mint]]></category>
		<category><![CDATA[personal finance]]></category>
		<category><![CDATA[wesabe]]></category>
		<category><![CDATA[yodlee]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=863</guid>
		<description><![CDATA[Сокращенный перевод статьи Марка Хедлунда, основателя Wesabe. Оригинал здесь. Оба вебсайта предоставляли сервис управления персональными финансами. Были запущены примерно в одно и то же время (2006-2007 год). Mint был куплен Intuit в сентябре 2009 года за 170 миллионов долларов. Wesabe закрылся в июне 2010 года. Почему так произошло? Дальше от лица Марка Хедлунда. -------------------------------------------- Прежде [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-866" style="border: 0pt none;" title="personal_finance" src="http://www.volinrok.com/wp-content/uploads/personal_finance.jpg" alt="" width="275" height="183" /></p>
<p><em>Сокращенный перевод статьи Марка Хедлунда, основателя Wesabe. <a href="http://blog.precipice.org/why-wesabe-lost-to-mint">Оригинал здесь</a>.</em></p>
<p><em>Оба вебсайта предоставляли сервис управления персональными финансами. Были запущены примерно в одно и то же время (2006-2007 год). Mint был куплен Intuit в сентябре 2009 года за 170 миллионов долларов. Wesabe закрылся в июне 2010 года.</em></p>
<p><em>Почему так произошло? Дальше от лица Марка Хедлунда.</em></p>
<p><em>--------------------------------------------<br />
</em></p>
<p>Прежде всего развеем несколько мифов.</p>
<p><strong>1. Mint победил, потому что был запущен раньше</strong></p>
<p>Неверно. Wesabe был запущен на 10 месяцев раньше. Можно говорить о том, что мы поспешили выйти на рынок, когда продукт еще не был полностью готов. Можно сказать. что Mint и другие могли спокойно учиться на наших ошибках, пока мы набивали шишки.</p>
<p><strong>2. Wesabe никогда не зарабатывал денег</strong></p>
<p>Неверно. Wesabe начал приносить доход в конце 2008 года, за полтора года до того как мы закрылись. К слову, деньги инвесторов закончились на 9 месяцев раньше, чем мы закрылись т.е. последние 9 месяцев мы зарабатывали достаточно, чтобы покрывать текущие расходы. К сожалению этих денег не хватило, чтобы продолжать развитие.</p>
<p><strong>3. У Mint было лучше название и лучше дизайн</strong></p>
<p>И то и другое верно, но врядли послужило основной причиной нашего поражения. Рынок показывает множество примеров самых разнообразно звучащих брэндов, которые сумели победить своих конкурентов. Дизайн тоже важен, но не может служить единственной или главной причиной победы на рынке.</p>
<p><strong>4. Wesabe не был "вирусным", а Mint был</strong></p>
<p>Наполовину верно. По-большому счету ни тот ни другой продукт не был вирусным. Mint в основном приобретал новых пользователей посредством Google Adwords (есть цифры, что привлечение каждого нового пользователя обходился им в 1 доллар). На графике видно, что трафик перестал расти сразу после их приобретения в сентябре 2009 и не рос 6 месяцев. Очевидно, что рост связан с размерами маркетингового бюджета, а не с вирусным распространением.</p>
<p>Кликабельно.</p>
<p style="text-align: center;"><a href="http://www.volinrok.com/wp-content/uploads/mint.png"><img class="size-medium wp-image-864  aligncenter" style="border: 1px solid black;" title="mint" src="http://www.volinrok.com/wp-content/uploads/mint-300x108.png" alt="" width="300" height="108" /></a></p>
<p>Хорошо, почему же тогда Mint добился такого успеха, а Wesabe нет? Я вижу две основные причины.</p>
<p>Во-первых, мы решили не работать с Yodlee, но не смогл найти им подходящую замену. Yodlee это агрегетор финансовых данных, предоставляющий доступ к ним в виде веб сервиса. Когда мы общались с ними в 2006 году, Yodlee была не в лушем состоянии после неудачной попытки продаться и потери несколько ведущих специалистов. К тому же они вели переговоры очень агрессивно, предлагая первые 6 месяцев бесплатно, после чего они назовут свою цену. Мы не решились вести бизнес с комапнией, находящейся в таком состоянии.</p>
<p>Mint же не побоялся и использовал Yodlee для получения пользовательских данных напрямую с банковских сайтов (Yodlee разработал парсер для каждого отдельного банка). Это дало возможность предоставить клиентам более понятный и удобный сервис. Wesabe решил построить свою собственную систему получения данных из банков, но это заняло время и они сумели сделать похожую функциональность только через 6 месяцев после того, как она появилась и Mint.</p>
<p>Наша ошибка была не в том, что мы начали делать свою систему получения пользовательских данных из банков. Ошибка была в том, что <strong>мы не сделали ее достаточно быстро и не использовали Yodlee в тот период, пока наша система не была готова.</strong></p>
<p>Второе. Mint отлично поработал над автоматической категоризацией финансовыхданных, чтобы пользователю ничего не пришлось делать самому. У них это получилось и новый пользователь сразу получал картину своих финансовых затрат. Wesabe же пытался преследовать более благородную и сложную цель - не только показать человеку куда уходят его деньги, но и помочь ему изменить свою финансовую ситуацию в лучшую сторону. Цель эта правильная и благородная, но она сделала продукт более сложным в использовании.</p>
<p>Я считаю, что любой сервис, работающий в области персональных финансов, должен делать две вещи. Певрое - сделать пользователя счастливым. Второе - помочь ему улучшить свою финансовую ситуацию. Mint перуспел в первом, в то время как во втором ни Mint, ни Wesabe не добились успеха. Да, Mint многократно заявлял, что из пользователи улучшили свое финансовое положение, но, поскольку дело происходило во время кризиса, другие люди тоже стали меньше тратить и уменьшили свои долги. Цифры уменьшения долгов и увеличения накоплений, предоставленные Mint совпали со средними по странам, в которых он работает.</p>
<p>Да, именно так. Менять поведение людей очень тяжело и еще никто на этом рынке не добился успеха в этом плане. Последнее слово на рынке управления персональными финансами еще не сказано.</p>
<p><em>Может у <a href="http://www.4konverta.com/" target="_blank">4х конвертов</a> это получится? </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/12/07/pochemu-mint-pobedil-wesabe/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
