<?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>по стопам webkill&#039;а &#187; email protection</title>
	<atom:link href="http://blog.lukmus.ru/tag/email-protection/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lukmus.ru</link>
	<description>это наш химический дом для печальных жителей Земли</description>
	<lastBuildDate>Sat, 21 Oct 2023 19:10:13 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>CloudFlare Email Protection Decoder на Ruby</title>
		<link>http://blog.lukmus.ru/2016/07/24/cloudflare-email-protection-decoder/</link>
		<comments>http://blog.lukmus.ru/2016/07/24/cloudflare-email-protection-decoder/#comments</comments>
		<pubDate>Sun, 24 Jul 2016 16:58:03 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[скрипты]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[email protection]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=2416</guid>
		<description><![CDATA[Известная контора CloudFlare и ее популярная услуга проксирования сайта, иногда, на определенных тарифах, не только скрывает истинный IP сервера сайта, но и может подменять контент выдаваемой сервером страницы. В частности, CF любит подменять открытые e-mail адреса, на JS-скрипт, который шифрует адрес вида xxx@yyy.zzz в исходном коде страницы. Пользователь браузера при этом не замечает подмены e-mail [...]]]></description>
			<content:encoded><![CDATA[<p>Известная контора <a href="https://www.cloudflare.com/" target="_blank" rel='nofollow'>CloudFlare</a> и ее популярная услуга проксирования сайта, иногда, на определенных тарифах, не только скрывает истинный IP сервера сайта, но и может подменять контент выдаваемой сервером страницы. В частности, CF любит подменять открытые e-mail адреса, на JS-скрипт, который шифрует адрес вида xxx@yyy.zzz в исходном коде страницы. Пользователь браузера при этом не замечает подмены e-mail адреса, т.к. JS расшифровывает его, чего не сказать о парсере.<br />
<img class="alignnone size-full wp-image-2421" title="cloudware" src="http://blog.lukmus.ru/wp-content/uploads/2016/07/cloudware.png" alt="" width="517" height="359" /><span id="more-2416"></span><br />
Если в настройках сайта в CF включена защита Email, то фрагмент исходного кода с почтовым адресом выглядит примерно так:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="html" style="font-family:monospace;">&lt;a id=&quot;__cf_email__&quot; href=&quot;http://cloudflare.com/email-protection.html&quot; class=&quot;f091809582839f9eb080999e97848582849c95de939f9d&quot;&gt;[email protected]&lt;/a&gt;</pre></td></tr></table></div>

<p>Где <code>f091809582839f9eb080999e97848582849c95de939f9d</code> &#8211; зашифрованная почта.</p>
<p>Реализации расшифровщика Cloudflare Email Encrypt существуют на множестве языков, например товарищ xl7dev <a href="http://blog.safebuff.com/2016/06/01/Cloudflare-Email-Protection-Decoder/" target="_blank" rel='nofollow'>представил</a> Cloudflare Email Protection Decoder на PHP и Python. Но разве прогрессивное человечество еще использует эти древние мантры?</p>
<h3>Cloudflare Email Protection Decoder на Ruby</h3>

<div class="wp_syntax"><table><tr><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">def</span> cf_decode<span style="color:#006600; font-weight:bold;">&#40;</span>code<span style="color:#006600; font-weight:bold;">&#41;</span>
  k=code<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span>..<span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">hex</span>
  <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2</span>..<span style="color:#006600; font-weight:bold;">&#40;</span>code.<span style="color:#9900CC;">size</span><span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">step</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_a</span>.<span style="color:#9900CC;">map</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>i<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#006600; font-weight:bold;">&#40;</span>code<span style="color:#006600; font-weight:bold;">&#91;</span>i..<span style="color:#006600; font-weight:bold;">&#40;</span>i<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">hex</span>^k<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">chr</span><span style="color:#006600; font-weight:bold;">&#125;</span>.<span style="color:#9900CC;">join</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">$ irb
2.0.0-p648 :001 <span style="color: #000000; font-weight: bold;">&gt;</span> def cf_decode<span style="color: #7a0874; font-weight: bold;">&#40;</span>code<span style="color: #7a0874; font-weight: bold;">&#41;</span>
2.0.0-p648 :002?<span style="color: #000000; font-weight: bold;">&gt;</span>     <span style="color: #007800;">k</span>=code<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>..<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>.hex
2.0.0-p648 :003?<span style="color: #000000; font-weight: bold;">&gt;</span>     <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span>..<span style="color: #7a0874; font-weight: bold;">&#40;</span>code.size-<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.step<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.to_a.map<span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #000000; font-weight: bold;">|</span>i<span style="color: #000000; font-weight: bold;">|</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>code<span style="color: #7a0874; font-weight: bold;">&#91;</span>i..<span style="color: #7a0874; font-weight: bold;">&#40;</span>i+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>.hex^k<span style="color: #7a0874; font-weight: bold;">&#41;</span>.chr<span style="color: #7a0874; font-weight: bold;">&#125;</span>.join
2.0.0-p648 :004?<span style="color: #000000; font-weight: bold;">&gt;</span>   end
 =<span style="color: #000000; font-weight: bold;">&gt;</span> nil 
2.0.0-p648 :005 <span style="color: #000000; font-weight: bold;">&gt;</span> cf_decode<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'f091809582839f9eb080999e97848582849c95de939f9d'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
 =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #ff0000;">&quot;aperson@pingturtle.com&quot;</span> 
2.0.0-p648 :006 <span style="color: #000000; font-weight: bold;">&gt;</span></pre></td></tr></table></div>

<p><meta property="og:image" content="http://blog.lukmus.ru/wp-content/uploads/2016/07/cloudware.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2016/07/24/cloudflare-email-protection-decoder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
