<?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>Pais porrada de Bethrezen &#187; mysql</title> <atom:link href="http://blog.bethrezen.ru/tag/mysql/feed" rel="self" type="application/rss+xml" /><link>http://blog.bethrezen.ru</link> <description>Блог веб-программиста</description> <lastBuildDate>Sat, 27 Aug 2011 08:51:33 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>Перенос MySQL в другую папку/раздел на Debian/Ubuntu</title><link>http://blog.bethrezen.ru/2009/12/perenos-mysql-v-druguyu-papku-razdel-na-debian-ubuntu.html</link> <comments>http://blog.bethrezen.ru/2009/12/perenos-mysql-v-druguyu-papku-razdel-na-debian-ubuntu.html#comments</comments> <pubDate>Sat, 19 Dec 2009 08:51:38 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[linux]]></category> <category><![CDATA[apparmor]]></category> <category><![CDATA[debian]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[ubuntu]]></category><guid
isPermaLink="false">http://blog.bethrezen.ru/?p=244</guid> <description><![CDATA[Недавно мне пришлось переместить данные MySQL в другую папку(а точнее на другой раздел) на Debian Linux 5.0.3. Логично, что простым переносом файлов тут не отделаешься, надо что-то где-то прописать. По-умолчанию данные MySQL лежат в /var/lib/mysql. Мне захотелось, чтобы они были в /home/mysql. Переносим папку mysql куда нам нужно, затем лезем в конфиг MySQL (/etc/mysql/my.cnf). Там [...]]]></description> <content:encoded><![CDATA[<p>Недавно мне пришлось переместить данные MySQL в другую папку(а точнее на другой раздел) на <strong>Debian Linux 5.0.3</strong>.</p><p>Логично, что простым переносом файлов тут не отделаешься, надо что-то где-то прописать.</p><p>По-умолчанию данные MySQL лежат в <strong>/var/lib/mysql</strong>. Мне захотелось, чтобы они были в <strong>/home/mysql</strong>. Переносим папку mysql куда нам нужно, затем лезем в конфиг MySQL (<strong>/etc/mysql/my.cnf</strong>).</p><p>Там есть опция:</p><div
class="wp_syntax"><div
class="code"><pre class="ini" style="font-family:monospace;color: #FCFFBA;">datadir         <span style="color: #000066; font-weight:bold;color: #CCC;">=</span> /var/lib/mysql</pre></div></div><p>Вот её мы заменяем на следующее:</p><div
class="wp_syntax"><div
class="code"><pre class="ini" style="font-family:monospace;color: #FCFFBA;">datadir         <span style="color: #000066; font-weight:bold;color: #CCC;">=</span> /home/mysql</pre></div></div><p>Пробуем перезапустить наш MySQL сервер (/etc/init.d/mysql restart) и в итоге у нас ничего не запускается.</p><p>Смотрим tail /var/log/messages и видим приблизительно такое:</p><div
class="wp_syntax"><div
class="code"><pre class="abap" style="font-family:monospace;color: #FCFFBA;"> kernel<span style="color: #808080;color: #CCC;">:</span> <span style="color: #808080;color: #CCC;">&#91;</span> <span style="color: #3399ff;color: #DDD;">2714.258037</span><span style="color: #808080;color: #CCC;">&#93;</span> audit<span style="color: #808080;color: #CCC;">&#40;</span><span style="color: #3399ff;color: #DDD;">1227462526.718</span><span style="color: #808080;color: #CCC;">:</span><span style="color: #3399ff;color: #DDD;">13</span><span style="color: #808080;color: #CCC;">&#41;</span><span style="color: #808080;color: #CCC;">:</span> <span style="color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;color: #343832;">type</span><span style="color: #800080;">=</span><span style="color: #3399ff;color: #DDD;">1503</span> operation<span style="color: #800080;">=</span><span style="color: #808080; font-style: italic;color: #CDC;">&quot;inode_create&quot; requested_mask=&quot;w::&quot; denied_mask=&quot;w::&quot; name=&quot;/home/mysql/yii.test&quot; pid=19659 profile=&quot;/usr/sbin/mysqld&quot; namespace=&quot;default&quot;</span>
 kernel<span style="color: #808080;color: #CCC;">:</span> <span style="color: #808080;color: #CCC;">&#91;</span> <span style="color: #3399ff;color: #DDD;">2714.310572</span><span style="color: #808080;color: #CCC;">&#93;</span> audit<span style="color: #808080;color: #CCC;">&#40;</span><span style="color: #3399ff;color: #DDD;">1227462526.770</span><span style="color: #808080;color: #CCC;">:</span><span style="color: #3399ff;color: #DDD;">14</span><span style="color: #808080;color: #CCC;">&#41;</span><span style="color: #808080;color: #CCC;">:</span> <span style="color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;color: #343832;">type</span><span style="color: #800080;">=</span><span style="color: #3399ff;color: #DDD;">1503</span> operation<span style="color: #800080;">=</span><span style="color: #808080; font-style: italic;color: #CDC;">&quot;inode_permission&quot; requested_mask=&quot;rw::&quot; denied_mask=&quot;rw::&quot; name=&quot;/home/mysql/ibdata1&quot; pid=19659 profile=&quot;/usr/sbin/mysqld&quot; namespace=&quot;default&quot;</span></pre></div></div><p>Это нам говорит о том, что политика <strong>AppArmor</strong> запрещает всякие манипуляции мусклу в новой папке. И это естественно, ведь AppArmor думает, что базы лежат всё там же, в /var/lib/mysql.</p><p>Значит надо переписать конфиг AppArmor. Открываем и редактируем <strong>/etc/apparmor.d/usr.sbin.mysqld</strong> . В нём меняем всё, где упоминается /var/lib/mysql на /home/mysql. Затем перезапускаем AppArmor и <strong>MySQL</strong>:</p><div
class="wp_syntax"><div
class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;"><span style="color: #c20cb9; font-weight: bold;color: #577A61;">sudo</span> service apparmor restart
<span style="color: #c20cb9; font-weight: bold;color: #577A61;">sudo</span> <span style="color: #000000; font-weight: bold;color: #CCC;">/</span>etc<span style="color: #000000; font-weight: bold;color: #CCC;">/</span>init.d<span style="color: #000000; font-weight: bold;color: #CCC;">/</span>mysql restart</pre></div></div><p>И у нас всё работает! Такая же схема для Ubuntu.</p> ]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2009/12/perenos-mysql-v-druguyu-papku-razdel-na-debian-ubuntu.html/feed</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Yet Another Tip: Всегда проверяйте входные параметры</title><link>http://blog.bethrezen.ru/2007/08/yet-another-tip-%d0%b2%d1%81%d0%b5%d0%b3%d0%b4%d0%b0-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d1%8f%d0%b9%d1%82%d0%b5-%d0%b2%d1%85%d0%be%d0%b4%d0%bd%d1%8b%d0%b5-%d0%bf%d0%b0%d1%80%d0%b0%d0%bc%d0%b5%d1%82.html</link> <comments>http://blog.bethrezen.ru/2007/08/yet-another-tip-%d0%b2%d1%81%d0%b5%d0%b3%d0%b4%d0%b0-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d1%8f%d0%b9%d1%82%d0%b5-%d0%b2%d1%85%d0%be%d0%b4%d0%bd%d1%8b%d0%b5-%d0%bf%d0%b0%d1%80%d0%b0%d0%bc%d0%b5%d1%82.html#comments</comments> <pubDate>Fri, 10 Aug 2007 13:59:00 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[security]]></category><guid
isPermaLink="false"></guid> <description><![CDATA[Данная статья находится в стадии написания. Не обращайте внимание на ашипки. Ани сделаны спицальна. &#171;Вот и все&#8230; и нету Билла&#8230; жадность Билла погубила!&#187; &#8211; м/ф &#171;Остров сокровищ&#187;, Россия Вот сколько народу не говори: &#171;Проверяйте входные параметры! Не доверяйте им! Юзер может их изменить! Особенно, если эти данные потом идут в базу!&#187;, а всё равно народ [...]]]></description> <content:encoded><![CDATA[<p><cite>Данная статья находится в стадии написания. Не обращайте внимание на ашипки. Ани сделаны спицальна.</cite></p><blockquote><p> &laquo;Вот и все&#8230; и нету Билла&#8230; жадность Билла погубила!&raquo; &#8211; м/ф &laquo;Остров сокровищ&raquo;, Россия</p></blockquote><p>Вот сколько народу не говори: &laquo;Проверяйте входные параметры! Не доверяйте им! Юзер может их изменить! Особенно, если эти данные потом идут в базу!&raquo;, а всё равно народ про это забывает. Вот совсем недавно. В одном казино заметил такую фишку..</p><p>Товарищ, писавший его наверное где-то встречал подобные статьи на сабж, но или они были написаны чайником для промо своего сайта, или просто этот человек плохо читать умеет. Кодер сий написал однажды интернет казино.. Увы ООПом тут и не пахнет&#8230; Даже массивы используются раза два-три за весь проект&#8230; Контент сайта инклудится из обычных файлов. Да, эти файлы нельзя просто так нагло прочитать, религия <strong>htaccess</strong> не позволяет. Да и выйти на папку выше тоже не получается, проверяется этот параметр регэкспом вида альфанумерик. Это умно, это молодец. Кое какие параметры у него даже проверяются на содержание коварных символов &laquo;,`,&#8217; .. Да&#8230; Это он конечно молодец и несмотря на всю убогость кода, этот момент он пытался(именно пытался) продумать&#8230;</p><p>Главная убогость кода в том, что он работает только при <strong>register_globals = on</strong>! Но это вряд ли поможет, ибо зачастую(не всегда, но бывает) переменные определяются ручками. Однако! Перейдем к игре&#8230;</p><p>В казино есть игры, которые просто работают через &lt;form&gt; и метод POST. Игрок делает ставку, нажимает и получает результат. Все вроде нормально. Однако! Кодер ЛОПУХ! Разве можно доверять входным данным? Никак нет! НИКОГДА! Я даже своей бабушке верю больше чем им! Так вот попробуем догадаться как выглядит исходник&#8230; Напишу на родном русском языке:<br
/>если ставка больше суммы_на_счету то пошел на фиг;<br
/>если все нормально играем;<br
/>если мы выиграли то сумма_на_счету=сумма_на_счету + ставка умноженная на коеффициент выигрыша в игре, если мы проиграли, то сумма_на_счету=сумма_на_счету &#8211; ставка;</p><p>Поскольку все люди жадные, особенно те, что заведуют казино, то естественно выиграть вам там не дадут&#8230;. От того мы проигрываем больше чем выигрываем. С этим все согласятся&#8230; Ну и отсюда естественный вывод. А что если нам проиграть, но с отрицательной ставкой? А? Словили фишку? Вот тут то весь и прикол. Если параметр не проверяется, то будет так:<br
/>сумма_на_счету = сумма_на_счету &#8211; отрицательная_ставка;<br
/>Кто хотя бы отдаленно был когда то в далеком детстве знаком с математикой помнит глупое правило: минус на минус дают плюс&#8230; Да! Оно тут срабатывает, ибо параметр не проверяется. Эта штука также подходит к условию, что ставка должна быть меньше либа равна суммы на счету, ибо отрицательное число всегда меньше неотрицательного:) Истина)</p><p>Вот такие вот косяки и приводят к огромным проблемам!</p><p>А теперь бонус, кусок злого кода на PHP:</p><p>PHP:<br
/><code><br
/>mysql_query("update users set cash=cash-'$stavka' where login='$l'"); /** Юзер проиграл */</p><p> if ($card==$tuz2) /** Юзер выиграл */</p><p>{</p><p>$priz=$stavka*3;</p><p>mysql_query("update game_bank  set wmr=wmr-'$priz' where name='lloto'");</p><p>mysql_query("update users set cash=cash+'$priz' where login='$l'");</p><p> }</p><p></code></p><p><b>Послесловие</b>:<br
/>Также, ещё одно вполне разумное умозаключение имеет место быть. Допустим у нас игра наперстки. Это три наперстка, надо угадать где приз. Скрипту может передаваться также ведь и параметр с номером выбранного наперстка. Если же он не проверяется, то заменив его допустим на номер 4 мы будим всегда проигрывать!<br
/>Естественно я об этой фигне сказал админу этого казино, которому было кстати 17! Он все закрыл и отблагодарил меня) Трави бобров.. ой.. твори добро.. во!</p><p>Внимание, данные действия могут попадать под статьи УК РФ!<br
/><b>Bethrezen</b></p><p><i>настроение: Довольное<br
/>слушаю: Lamb Of God &#8211; Purified</i></p> ]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2007/08/yet-another-tip-%d0%b2%d1%81%d0%b5%d0%b3%d0%b4%d0%b0-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d1%8f%d0%b9%d1%82%d0%b5-%d0%b2%d1%85%d0%be%d0%b4%d0%bd%d1%8b%d0%b5-%d0%bf%d0%b0%d1%80%d0%b0%d0%bc%d0%b5%d1%82.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc
Page Caching using apc
Database Caching 28/49 queries in 0.024 seconds using apc

Served from: blog.bethrezen.ru @ 2012-02-06 13:53:00 -->
