<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/homakov/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя homakov]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sun, 26 Apr 2026 15:13:13 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[BSON инъекция в MongoDB адаптере для Ruby]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/259569/</guid>
      <link>https://habr.com/ru/articles/259569/?utm_campaign=259569&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В BSON-ruby был найден баг, который в лучшем случае приводил к небольшому DoS, но большинство версий было уязвимо к инъекции в BSON (аналог SQL инъекции, BSON это бинарный аналог JSON, используемый для работы с базой).<br/>
<br/>
На хабре уже <a href="http://habrahabr.ru/post/144139/">как-то упоминалась</a> особенность регулярок в руби — у нас ^$ значат не просто начало и конец строки, но и новую строку \n.<br/>
<br/>
Но тогда в примерах были лишь XSS «javascript:a()\nhttp://», и я давно искал пример, когда регулярки приводят к чему-то серьезному. И вот пару дней назад, во время аудита внешних библиотек нашего клиента, наткнулся на следующий код в BSON-ruby. <br/>
<br/>
<pre><code class="bash">def legal?(str)
  !!str.match(/^[0-9a-f]{24}$/i)
end
</code></pre> <a href="https://habr.com/ru/articles/259569/?utm_campaign=259569&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 04 Jun 2015 16:35:26 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[MongoDB]]></category><category><![CDATA[Ruby]]></category><category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[ruby]]></category><category><![CDATA[mongo]]></category><category><![CDATA[regexp]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я взломал Starbucks для безлимитного кофе]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/258449/</guid>
      <link>https://habr.com/ru/articles/258449/?utm_campaign=258449&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Это история о том, как я нашел способ нагенерить неограниченное число денег на подарочные карты старбакса, тем самым обеспечить себе пожизненный бесплатный кофе, ну или украсть у них пару миллионов другими способами.<br/>
<br/>
Итак, не так давно мне в голову пришла идея купить 3 карты Старбакса по $5 каждая.<br/>
<br/>
<img src="https://habrastorage.org/getpro/habr/post_images/2ee/271/e90/2ee271e90d3371957c5a8e178827ba2d.jpg" alt="image" width="400"/><br/>
 <a href="https://habr.com/ru/articles/258449/?utm_campaign=258449&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 21 May 2015 09:01:59 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Веб-разработка]]></category><category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[starbucks]]></category><category><![CDATA[race condition]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Как обойти двух факторную аутенфикацию Authy с ../sms]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/253137/</guid>
      <link>https://habr.com/ru/articles/253137/?utm_campaign=253137&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/post_images/6b4/d30/6b6/6b4d306b62deeff761fda8bc6473d3cf.png" alt="image"/><br/>
<br/>
С помощью простого ввода ../sms можно было обойти второй фактор на сайтах использующих 2FA через authy.com (<a href="https://www.authy.com/businesses">а их довольно много</a>).<br/>
<br/>
Самое интересное что такая досадная уязвимость появилась не по вине Authy, да и нашел я всю эту цепочку багов с большой удачей.<br/>
 <a href="https://habr.com/ru/articles/253137/?utm_campaign=253137&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 16 Mar 2015 02:15:48 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Ruby]]></category><category><![CDATA[Веб-разработка]]></category><category><![CDATA[Информационная безопасность]]></category>
      <category>2fa</category><category>authy</category><category>duo</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Reconnect — уязвимость в Facebook Login]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/252441/</guid>
      <link>https://habr.com/ru/articles/252441/?utm_campaign=252441&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/post_images/20d/0bc/2a6/20d0bc2a6d807dd33596d2cb498f1de9.png" alt="image"/><br/>
<br/>
Все очень просто — если мы можем перелогинить пользователя в свой фейсбук то мы можем присоединить свой фейсбук к аккаунту жертвы на других вебсайтах. Жертва загружает нашу страничку и мы получаем доступ к аккаунту жертвы на Booking.com, Bit.ly, About.me, Stumbleupon, Angel.co, Mashable.com, Vimeo и куче других вебсайтов. <br/>
 <a href="https://habr.com/ru/articles/252441/?utm_campaign=252441&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sat, 07 Mar 2015 17:17:18 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Facebook API]]></category><category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[facebook]]></category><category><![CDATA[csrf]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Опасности использования open-uri]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/251823/</guid>
      <link>https://habr.com/ru/articles/251823/?utm_campaign=251823&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="http://ruby-doc.org//stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html">OpenURI в руби это стандартная библиотека сильно упрощающая работу с URL</a> так как она объединяет в себе Net:HTTP/HTTPS/FTP и представляет из себя всего лишь метод open. Насколько я знаю это самый популярный способ для скачивания файла, GET запроса или чтения данных.<br/>
<br/>
Но на деле <code>require &quot;open-uri&quot;</code> патчит <a href="http://ruby-doc.org//core-2.2.0/Kernel.html#method-i-open">Kernel.open</a> и вызывает разный код для разных аргументов, что может привести к удаленному выполнению кода или чтению любого файла на сервере!<br/>
<br/>
<code>open(params[:url])</code> это выполнение кода для url=<code>|ls</code> Все что начинается с | рассматривается как системный вызов.<br/>
<br/>
<code>open(params[:url]) if params[:url] =~ /^http://</code> не лучше для url=<code>|touch n;\nhttp://url.com</code> (<a href="http://homakov.blogspot.com/2012/05/saferweb-injects-in-various-ruby.html">сломанные регулярки могут привести к RCE, используйте \A\z</a>).<br/>
 <a href="https://habr.com/ru/articles/251823/?utm_campaign=251823&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 01 Mar 2015 14:58:27 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Ruby]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[ruby]]></category><category><![CDATA[rails]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Взлом биткоин биржи на Rails]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/248887/</guid>
      <link>https://habr.com/ru/articles/248887/?utm_campaign=248887&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В последнее время появилась масса биткоин сервисов. И то что раньше было проектом «for fun» неожиданно стало хранить десятки и даже сотни тысяч долларов. Цена биткоина выросла, но уровень безопасности биткоин сервисов остался таким же низким.<br/>
<br/>
Ради портфолио мы провели бесплатный аудит <a href="http://github.com/peatio/peatio">биткоин биржи с открытым кодом Peatio</a> использующей Ruby on Rails. Репорт в pdf можно <a href="http://sakurity.com/peatio.pdf">скачать тут</a>. Самое интересное что в результате нашлись не очередные унылые рейс кондишены или SQLi, а довольно таки любопытная цепочка багов ведущая к угону аккаунта и краже существенной части горячего кошелька. <br/>
 <a href="https://habr.com/ru/articles/248887/?utm_campaign=248887&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 26 Jan 2015 19:02:52 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[bitcoin]]></category><category><![CDATA[rails]]></category><category><![CDATA[peatio]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Браузер-в-браузере сделает сайт намного безопасней]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/248761/</guid>
      <link>https://habr.com/ru/articles/248761/?utm_campaign=248761&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В первую очередь поясню что эта технология находится на ранней стадии разработки, и я бы хотел подискутировать в этом топике о её рентабельности и полезности. Поэтому прототипа еще нет.<br/>
<br/>
Большинство уязвимостей в веб сайтах являются результатом изменения HTTP запроса, подмены URL или заголовков, и прочие неожиданные для сервера действия. Обычный пользователь не должен иметь возможности так делать, но так как современное приложение состоит из клиента и сервера, то в реальности сервер не имеет контроля над тем как пользователь использует клиентскую часть. <br/>
<br/>
Из-за этого «двойная валидация» встречается повсеместно — на экране нужно показывать только объекты доступные пользователю, плюс нужно на сервере проверять имеет ли пользователь доступ к данному объекту. <br/>
<br/>
Так возникла идея <a href="http://securecanvas.com/">SecureCanvas</a> — превратить сайт в подобие АТМ/терминала, где пользователь может только печатать и двигать мышку. Вместо попытки перехватить вредоносные запросы мы просто переводим игру в другую плоскость и снижаем поверхность атаки до нуля, разрешая пользователю делать лишь то что он и должен делать — взаимодействовать с сайтом.<br/>
 <a href="https://habr.com/ru/articles/248761/?utm_campaign=248761&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 25 Jan 2015 07:30:51 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[securecanvas]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Уязвимость в Paperclip (XSS/RCE)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/211973/</guid>
      <link>https://habr.com/ru/articles/211973/?utm_campaign=211973&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="https://github.com/thoughtbot/paperclip">Paperclip</a> это самый популярный джем для загрузки файлов/аватарок в рельсах. В нем был найден довольно простой логический баг, ведущий к загрузке произвольного файла на сервер, то есть с произвольным extension: file.html, file.php, file.cgi и так далее.<br/>
<br/>
Paperclip имеет «магическую» (как и все в рельсах) систему адаптеров. Если на входе объект типа File, то берется файловый адаптер, если строчка то сверяется по разным паттернам. Если строчка типа URL http://* то делается запрос по этому URL чтобы выкачать файл. <br/>
 <a href="https://habr.com/ru/articles/211973/?utm_campaign=211973&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 09 Feb 2014 16:08:12 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[paperclip]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Как я взломал Гитхаб еще раз]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/211845/</guid>
      <link>https://habr.com/ru/articles/211845/?utm_campaign=211845&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Это история о том, как я соединил 5 Low-severity багов в один большой баг, с помощью которого можно было читать/писать в приватные репы на Гитхабе (<a href="http://habrahabr.ru/post/139399/">опять</a>).<br/>
<br/>
Несколько дней назад гитхаб запустил <a href="http://bounty.github.com/">баунти программу</a>. За 4 часа я смастерил такой URL после посещения которого я получал доступ к вашему гитхаб аккаунту и репозиториям. Хотите узнать как?<br/>
 <a href="https://habr.com/ru/articles/211845/?utm_campaign=211845&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 07 Feb 2014 18:41:02 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Веб-разработка]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category>security</category><category>github api</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Content Security Policy, для зла]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/211370/</guid>
      <link>https://habr.com/ru/articles/211370/?utm_campaign=211370&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Есть такой специальный хедер для безопасности вебсайтов <a href="http://content-security-policy.com/">CSP</a>.<br/>
<br/>
CSP ограничивает загрузку каких либо ресурсов если они не были пре-одобрены в хедере, то есть отличная защита от XSS. Атакующий не сможет загрузить сторонний скрипт, inline-скрипты тоже отключены… <br/>
<br/>
На уровне браузера вы можете разрешить только конкретные урлы для загрузки а другие будут запрещены. Помимо пользы этот механизм может принести и вред — ведь факт блокировки и есть детекция! Осталось только придумать как ее применить.<br/>
 <a href="https://habr.com/ru/articles/211370/?utm_campaign=211370&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 04 Feb 2014 11:51:52 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[csp]]></category><category><![CDATA[web standards]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Безопасность OAuth2 и Facebook Connect уязвимости]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/211362/</guid>
      <link>https://habr.com/ru/articles/211362/?utm_campaign=211362&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Это — <a href="http://habrahabr.ru/post/150756/">сиквел моей сногсшибательной первой статьи</a>.<br/>
<br/>
Готов поспорить что каждый веб разработчик сталкивался с фейсбук коннектом или вконтакте логином или аутенфикацией через твиттер. Все это по сути построено на основе OAuth1/2.<br/>
<br/>
Мое мнение заключается в том что мы все ступили не на ту дорожку. <a href="http://hueniverse.com/2012/07/oauth-2-0-and-the-road-to-hell/">OAuth это дорожка в ад</a> (к слову, Эран Хаммер сейчас работает над заменой oauth — oz).<br/>
<br/>
В этой статье я не буду погружаться в модель атаки а перескажу совершенно конкретные уязвимости которые вы можете начать использовать прямо сейчас.<br/>
<br/>
<img src="https://habrastorage.org/getpro/habr/post_images/d2e/eb9/d9d/d2eeb9d9dc65d95b2182eb64453eac8b.jpg" alt="image"/><br/>
 <a href="https://habr.com/ru/articles/211362/?utm_campaign=211362&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 04 Feb 2014 11:14:20 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Я пиарюсь]]></category>
      <category><![CDATA[oauth]]></category><category><![CDATA[facebook]]></category><category><![CDATA[vk]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Почему не нужно использовать RJS]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/209618/</guid>
      <link>https://habr.com/ru/articles/209618/?utm_campaign=209618&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[У jQuery есть встроенная фича — если сервер ответит с content-type=text/javascript библиотека выполнит ответ автоматически. <br/>
<br/>
<pre><code class="html">jQuery.ajaxSetup({
	accepts: {
		script: &quot;text/javascript, application/javascript, application/ecmascript, application/x-ecmascript&quot;
	},
	contents: {
		script: /(?:java|ecma)script/
	},
	converters: {
		&quot;text script&quot;: function( text ) {
			jQuery.globalEval( text );
			return text;
		}
	}
}); 

</code></pre><br/>
<br/>
Поэтому в рельсах довольно распространена тактика «ответь строчкой Javascriptа вместо правильного JSON, который придется обрабатывать».<br/>
<br/>
 <a href="https://habr.com/ru/articles/209618/?utm_campaign=209618&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 19 Jan 2014 17:44:12 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Веб-разработка]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[rails]]></category><category><![CDATA[rjs]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Куки-бомбы, или как положить интернеты]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/209536/</guid>
      <link>https://habr.com/ru/articles/209536/?utm_campaign=209536&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Знаете ли вы, что субдомен sub.host.com может ставить куки для *.host.com? Наверняка, да.<br/>
А как много он может их поставить? Очень много.<br/>
А сколько браузер будет отправлять их впоследствии? Все!<br/>
<br/>
А что получится, если «заспамить» главный домен своими куки-бомбами? На всей системе .host.com все запросы будут иметь супер длинный хедер Cookies, добавленный браузером, и эти запросы не будут обрабатываться сервером из-за слишком большого размера.<br/>
<br/>
Попросту говоря, после посещения специальной страницы, вы не сможете заходить, например, на такие сайты: *.wordpress.com, *.github.io, ваша «экосистема» Гугла сломается, если я заспамлю .googleusercontent, а также не забываем про Content Delivery Network — заспамив главный домен network_name.net, все JS и стили, хранящиеся там, перестанут подгружаться!<br/>
<br/>
Более того, вы можете «заспамить» так конкретный /dontlike путь, например пост конкурента на блогспоте/тумблере/вордпрессе.<br/>
<br/>
Предлагаю обсудить, как можно исправить эту проблему. <a href="https://habr.com/ru/articles/209536/?utm_campaign=209536&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut"></a>]]></description>
      
      <pubDate>Sat, 18 Jan 2014 17:53:04 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Веб-разработка]]></category>
      <category>cookies</category><category>sad</category><category>such</category><category>very</category><category>not wow</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Выполнение произвольного кода в Rails]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/165343/</guid>
      <link>https://habr.com/ru/articles/165343/?utm_campaign=165343&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<b>Вкратце: Rails 2,3 и 4 приложения подвержены выполнению произвольного кода(RCE) без исключения. Шел, чтение и очистка базы данных, все что душе угодно.</b><br/>
 <a href="https://habr.com/ru/articles/165343/?utm_campaign=165343&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 10 Jan 2013 12:34:40 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Ruby]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[ruby]]></category><category><![CDATA[rails]]></category><category><![CDATA[xml]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Rails params & GC]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/164685/</guid>
      <link>https://habr.com/ru/articles/164685/?utm_campaign=164685&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[У нас тут в Rails комьюнити <a href="http://www.rubydramas.com/">опять драма</a>. <a href="https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/DCNTNp_qjFM">Первоначальный репорт. </a>Есть методы типа find_by_* которые проецируются на модели в find_by_title например и find_by_id.<br/>
Их можно использовать так<br/>
find_by_id(params[:id], select: «CUSTOM SQL»)<br/>
Но обычно их используют вот так<br/>
find_by_id(params[:id])<br/>
И происходит SQL Injection если в params[:id] лежит {:select =&gt; «CUSTOM SQL»} — опции могут быть и в первом аргументе. <br/>
<br/>
Обратите внимание — :select это символ а не «select»(строка). Это значит что трюк ?id[select]=SQL не пройдет т.к. ключ окажется строкой. И вообще params это хеш типа HashWithIndifferentAccess. Те у него ВПРИНЦИПЕ не может быть символов в ключах т.к. они все уничтожаются при создании.<br/>
<br/>
Есть такой gem authlogic, в общем виде он использует find_by_token(token) где token это объект из сессии(которая хранится в куках и подписана session_secret). Чтобы в него записать :select =&gt; «SQL» вам нужно знать session_secret, поэтому уязвимость крайне редкая.<br/>
<b>Весь этот SQL Injection CVE не стоит выеденного яйца! И ради чего пост? DoS!<br/>
</b> <a href="https://habr.com/ru/articles/164685/?utm_campaign=164685&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 04 Jan 2013 06:36:55 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Ruby]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[ruby]]></category><category><![CDATA[xml]]></category><category><![CDATA[егор хомяков]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Безопасность OAuth2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/150756/</guid>
      <link>https://habr.com/ru/articles/150756/?utm_campaign=150756&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Данная блогозапись на хабр прежде всего обусловлена появлением <a href="http://habrahabr.ru/settings/social/">«Ключницы»</a> — хороший повод <a href="http://homakov.blogspot.com/2012/07/saferweb-most-common-oauth2.html">связать</a> <a href="http://homakov.blogspot.com/2012/08/saferweb-oauth2a-or-lets-just-fix-it.html">и</a> <a href="http://homakov.blogspot.com/2012/08/oauth2-one-accesstoken-to-rule-them-all.html">перевести</a> <a href="http://homakov.blogspot.com/2012/09/a-couple-of-reasons-why-oauth2-spec-is.html">накопленное</a>. <br/>
<br/>
<img src="https://habrastorage.org/getpro/habr/post_images/1b9/d62/9ef/1b9d629ef7997a8ade216342f00ede6c.png"/><br/>
У нас в программе: вольный пересказ спек OAuth2, слабые стороны и Threat Model, <s>0day на хабре</s>трюк с аутенфикацией.<br/>
<img src="https://habrastorage.org/getpro/habr/post_images/7a7/9be/c9e/7a79bec9e746e55c8b96a20ace37dfba.png" alt="image"/><br/>
 <a href="https://habr.com/ru/articles/150756/?utm_campaign=150756&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 05 Sep 2012 21:43:23 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Информационная безопасность]]></category><category><![CDATA[Facebook API]]></category><category><![CDATA[VK API]]></category>
      <category><![CDATA[vkontakte]]></category><category><![CDATA[oauth2]]></category><category><![CDATA[facebook]]></category><category><![CDATA[егор хомяков]]></category><category><![CDATA[да у меня есть свой тэг]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[English Learning Hacks]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/108120/</guid>
      <link>https://habr.com/ru/articles/108120/?utm_campaign=108120&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Многим понравился первый <a href="http://habrahabr.ru/blogs/study/85405/">пост об хаках в изучении английского</a>. Настал момент для второго, финального.<br/>
 <a href="https://habr.com/ru/articles/108120/?utm_campaign=108120&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 16 Nov 2010 19:02:51 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Я пиарюсь]]></category>
      <category><![CDATA[english learning]]></category><category><![CDATA[изучение английского]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Дирк-Ян Базинк(Dirkjan Bussink), как стать успешным Рубистом]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/95225/</guid>
      <link>https://habr.com/ru/articles/95225/?utm_campaign=95225&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В рамках серии <a href="http://chikey.habrahabr.ru/blog/95162/">«Как Стать Успешным Рубистом»</a>. <a href="http://belitsky.info/freelance/dirkjan-bussink/">Оригинал</a>.<br/>
<br/>
<img src="http://belitsky.info/images/upic-dirkjan.jpg" alt="image"/><br/>
Дирк-Ян Базинк(Dirkjan Bussink) опытный разработчик и активный участник Ruby сообщества. twitter.com/dbussink<br/>
github.com/dbussink<br/>
 <a href="https://habr.com/ru/articles/95225/?utm_campaign=95225&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 04 Jun 2010 04:42:14 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Ruby]]></category>
      <category><![CDATA[ruby]]></category><category><![CDATA[rubyist]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как стать успешным Рубистом]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/95162/</guid>
      <link>https://habr.com/ru/articles/95162/?utm_campaign=95162&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<i><a href="http://belitsky.habrahabr.ru/">Дмитрий Белицкий</a> <a href="http://belitsky.info/freelance/successful-ruby-freelancer/">провел</a> 18 потрясных интервью с рубистами. А я решил их перевести и опубликовать тут.</i><br/>
<br/>
ATTENTION: <a href="http://rezwyi.blogspot.com/search/label/%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D1%8B%20%D1%83%D1%81%D0%BF%D0%B5%D1%85%D0%B0">rezwyi.blogspot.com/search/label/%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D1%8B%20%D1%83%D1%81%D0%BF%D0%B5%D1%85%D0%B0</a> здесь остальные переводы от товарища Сергея Резванова.<br/>
<br/>
<b>Как стать успешным Рубистом?</b><br/>
<br/>
Ответ на этот вопрос знают, скорее всего, успешные рубисты.<br/>
<br/>
Я подготовил девять вопросов и задал их по Email людям, которые, по моему мнению, являются таковыми.<br/>
<br/>
<a href="http://chikey.habrahabr.ru/blog/95171/">Geoffrey Grosenbach</a><br/>
<a href="http://habrahabr.ru/blogs/ruby/95184/">Desi McAdam</a><br/>
<a href="http://habrahabr.ru/blogs/ruby/95197/">Giles Bowkett</a><br/>
<a href="http://habrahabr.ru/blogs/ruby/95225/">Dirkjan Bussink</a><br/>
<a href="http://habrahabr.ru/blogs/ruby/95398/">Jamis Buck</a><br/>
Yehuda Katz<br/>
James Edward Gray II<br/>
Carlos Gabaldon<br/>
Fabio Akita<br/>
Pat Allan<br/>
Peter Cooper<br/>
Ryan Bates<br/>
Paul Campbell<br/>
Matt Aimonetti<br/>
Nathaniel Talbott<br/>
Elise Huard<br/>
Chris Wanstrath (defunkt)<br/>
Oleg Andreev (oleganza)<br/>
<br/>
1 — переводы постараюсь публиковать по одному в день.<br/>
2 — рад любым корректировкам <a href="https://habr.com/ru/articles/95162/?utm_campaign=95162&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut"></a>]]></description>
      
      <pubDate>Tue, 01 Jun 2010 13:20:36 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Ruby]]></category>
      <category><![CDATA[ruby on rails]]></category><category><![CDATA[rubyist]]></category><category><![CDATA[ruby]]></category><category><![CDATA[interview]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Text2Rss, читайте книги по RSS]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/92604/</guid>
      <link>https://habr.com/ru/articles/92604/?utm_campaign=92604&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Это всего-лишь идея для приложения, которое может быть полезно вам и мне. Нередко качая какую нибудь книгу в формате PDF решаешь её прочитать, скажем 2-3 страницы в день. И, разумеется, потом все это легко забываешь, еще легче чем если бы она была бумажная.<br/>
(Если проблем с силой воли у вас нет — поздравляю, дальше можете не читать)<br/>
<br/>
Лично я очень часто читаю свой ридер. Я считаю своим долгом доводить количество непрочитанных записей до 0.<br/>
<br/>
Идея такая — делается простое приложение на appspot.com(например), которое будет делить залитый файл (PDF/TXT) на кусочки — параграфы, затем пользователь сам указывает сколько ему нужно глав в день, и другие настройки.<br/>
Затем он получает ссылку на RSS, по которой он сможет читать свою книгу.<br/>
<br/>
Готовых реализаций не нашел, но лично мне идея очень по-вкусу. <a href="https://habr.com/ru/articles/92604/?utm_campaign=92604&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut"></a>]]></description>
      
      <pubDate>Sun, 02 May 2010 06:56:49 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Чулан]]></category>
      <category><![CDATA[pdf]]></category><category><![CDATA[rss]]></category><category><![CDATA[books]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Несколько фишек для изучающих английский язык]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/85405/</guid>
      <link>https://habr.com/ru/articles/85405/?utm_campaign=85405&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[1. <b>Анонимные чаты</b>: omegle.com, chatroulette.com<br/>
2. <b>Сайты-помощники</b>: kwiz.me, kimir.org, englishtips.org<br/>
3. <b>Подкастинг</b>: eslpod.com, effortlessenglish.com, npr.podcast.com, businessenglishpod.com, <br/>
4. Качаем фильмы/сериалы, затем субтитры к ним. Просматривать можно с замедлением в VLC плеере чтобы лучше переваривать. Еще рекомендую комик шоу, например Important Things with Demetri Martin — не пожалеете.<br/>
5. В скайпе ищем каких нибудь индусов со статусом SkypeMe и не стенсняясь знакомимся.<br/>
6. При прочтении какой-то книги или просмотра фильма неплохо бы подготовится таким образом: берем текст, устанавливаем длину слова и частоту употребления в тексте и запускаем, например, этот скрипт (PHP): <a href="http://pastebin.com/m7672c2a9">pastebin.com/m7672c2a9</a><br/>
В итоге имеем дайджест слов большинство из которых вы уже знаете но остальные стоит подучить. И когда вы будете смотреть фильм или читать книгу вы автоматом поймете это слово.<br/>
7. Произношение слов — ставим в Google.translate режим Русский-&gt;English и в поле текста пишем английское слово — оно без перевода встанет справа вместе с флэшкой которое произносит слово. Также forvo.com, howjsay.com<br/>
8. <b>Социальные сервисы ответов</b>:<br/>
answers.yahoo.com, vark.com<br/>
9. <b>Социальные сети для изучения языка</b>:<br/>
livemocha.com, lingq.com, italki.com<br/>
10. <b>Остальное</b>:<br/>
nytimes.com, ecenglish.com, urbandictionary.com<br/>
<a href="http://allengl.narod.ru/top/phvTOP170.htm">allengl.narod.ru/top/phvTOP170.htm</a><br/>
<br/>
Надеюсь каждый нашел для себя что-то полезное:) <a href="https://habr.com/ru/articles/85405/?utm_campaign=85405&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut"></a>]]></description>
      
      <pubDate>Wed, 24 Feb 2010 10:53:59 GMT</pubDate>
      <dc:creator><![CDATA[Homakov]]></dc:creator>
      <category><![CDATA[Учебный процесс в IT]]></category>
      <category><![CDATA[english learning]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
