<?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>Mihalytch personal blog &#187; безопасность</title>
	<atom:link href="http://mihalytch.org.ua/tag/bezopasnost/feed" rel="self" type="application/rss+xml" />
	<link>http://mihalytch.org.ua</link>
	<description>Все о высоких технологиях</description>
	<lastBuildDate>Mon, 05 Dec 2011 16:05: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>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Безопасность и cookie</title>
		<link>http://mihalytch.org.ua/programming/php/safety-and-cookie.html</link>
		<comments>http://mihalytch.org.ua/programming/php/safety-and-cookie.html#comments</comments>
		<pubDate>Thu, 20 Mar 2008 17:14:59 +0000</pubDate>
		<dc:creator>mihal</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Cookie]]></category>
		<category><![CDATA[безопасность]]></category>

		<guid isPermaLink="false">http://mihalytch.org.ua/programming/php/bezopasnost-i-cookie.html</guid>
		<description><![CDATA[Зачастую в cookie хранятся конфиденциальные данные. Соответственно, разработчик должен позаботиться о том, чтобы злоумышленники не получили доступ к данной информации. [...]]]></description>
			<content:encoded><![CDATA[<p>Зачастую в cookie хранятся конфиденциальные данные. Соответственно, разработчик должен позаботиться о том, чтобы злоумышленники не получили доступ к данной информации.</p>
<p><span id="more-23"></span>Известно 4 метода защиты данных, хранимых в cookie:</p>
<ol>
<li>отправка cookie по ssl соединению;</li>
<li>шифрование cookie;</li>
<li>установка области видимости;</li>
<li>ограничение доступа для доменов.</li>
</ol>
<p>При комплексном использовании всех 4-х методов защиты информации, хранимой в cookie, данные будут наиболее защищены.</p>
<p>Перейдем к рассмотрению практической реализации вышеперечисленных методов.</p>
<h3>Отправка cookie по ssl соединению</h3>
<p>Проще говоря, следует разрешить отправку  cookie только по защищенным HTTP запросам. В данном случае значительно затрудняется перехват данных, при передаче между клиентом и сервером.</p>
<p>На практике все выглядит гораздо проще. Нам достаточно задать 6-му параметру функции setcookie  значение &#8220;1&#8243;.</p>
<h3>Шифрование cookie</h3>
<p>В этом случае известно множество методов шифрования cookie. Рассмотрим на примере один из них.</p>
<p>Сначала следует создать декодировщик. Назовем его  decrupt_cookie.php:</p>
<pre class="brush: php; title: ; notranslate">
    $cursor = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_CAST_256,MCRYPT_MODE_CFB), MCRYPT_RAND);
        # Ключ
    $s_key = &quot;sdfsd98k98sdfsdf944775df&quot;;
    $decrypt_name = mcrypt_ decrypt(MCRYPT_CAST_256,$s_key,$username, MCRYPT_MODE_CFB,$cursor);

    echo $decrypt_name;
</pre>
<p>Далее представлен сам код шифрования  cookie:</p>
<pre class="brush: php; title: ; notranslate">
    $cursor = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_CAST_256,MCRYPT_MODE_CFB), MCRYPT_RAND);
    $s_key = &quot;sdfsd98k98sdfsdf944775df&quot;;
    $cook_name = &quot;cookie1&quot;;
    $cipher = mcrypt_encrypt(MCRYPT_CAST_256,$s_key,$cook_name, MCRYPT_MODE_CFB,$cursor);
    setcookie(&quot;username&quot;, $cipher, &quot;/decrypt_cookie.php&quot;);
</pre>
<h3>Установка области видимости</h3>
<p>Ограничить область &#8220;видимости&#8221; cookie можно как для отдельного каталога, так и для конкретной страницы. Поскольку cookie доступны для всех каталогов, начиная от корневого.</p>
<p>Область видимости cookie задается в 3-м параметре функции setcookie.</p>
<p>Например:</p>
<ul>
<li>cookie доступны только для определенного каталога и его подкаталогов:
<pre class="brush: php; title: ; notranslate">setcookie(&quot;cookiename&quot;, $cooki_value, '/folder_1/');</pre>
</li>
<li> cookie доступны только для определенной страницы:
<pre class="brush: php; title: ; notranslate">setcookie(&quot;cookiename&quot;, $cooki_value, '/folder_1/page.php');</pre>
</li>
</ul>
<h3>Ограничение доступа для доменов</h3>
<p>Доступ от определенных доменов к информации, хранимой в cookie, также следует ограничить, так как в одном из способов взлома пользовательских аккаунтов используется чтение всех cookie пользователя. Потом нужные cookie подменяют и получают доступ к конфиденциальной информации&#8230;</p>
<p>Для того чтобы ограничить доступ к cookie для одного домена или их списка существует 4-й параметр.</p>
<pre class="brush: php; title: ; notranslate">setcookie(&quot;cookiename&quot;, $cooki_value, '/folder_1/page.php', 'mihalytch.org.ua');</pre>
]]></content:encoded>
			<wfw:commentRss>http://mihalytch.org.ua/programming/php/safety-and-cookie.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

