Информационная безопасность → Школьный DDoS и стоит ли его бояться
Современный интернет предлагает четыреста относительно честных способов зарабатывания денег. К сожалению, не все алчные до наживы персонажи ими ограничиваются. К счастью, только некоторые из них обладают достаточной квалификацией, чтобы причинить серьезный вред. Тем не менее их действия для неподготовленных людей могут оказаться достаточно разрушительными. Под катом вы найдете душещипательную историю с угрозами, шантажом, вероломным нападением и традиционным киношным хеппиэндом.Персональные блоги → Три способа решения проблемы «Fatal error: Allowed memory size of XXX bytes exhausted»
Когда вашему скрипту не хватает оперативной памяти для его выполнения (точнее он не укладывается в объём, который ему разрешён), возникает ошибка «Allowed memory size of XXX bytes exhausted (tried to allocate YYY bytes)».
Для решения данной задачи предлагаю три варианта на выбор в зависимости от прав доступа на сервере и его конфигурации.
Один из этих вариантов вам точно поможет.
В файле настроек РНР (php.ini) пишем:
Обычно для простых смертных этот файл править не дают. Всё зависит от вашего хостинг-провайдера. Да и делать вам там нечего.
В файле настроек сайта (.htaccess) пишем:
При определённой конфигурации сервера вы можете получить ошибку 500 – Internal Server Error.
В теле вашего скрипта (например, config.php) пишем:
Самый простой и безопасный ход решения проблемы. Меня выручает постоянно.
Для решения данной задачи предлагаю три варианта на выбор в зависимости от прав доступа на сервере и его конфигурации.
Один из этих вариантов вам точно поможет.
Способ первый:
В файле настроек РНР (php.ini) пишем:
memory_limit = 100MОбычно для простых смертных этот файл править не дают. Всё зависит от вашего хостинг-провайдера. Да и делать вам там нечего.
Способ второй:
В файле настроек сайта (.htaccess) пишем:
php_value memory_limit 100MПри определённой конфигурации сервера вы можете получить ошибку 500 – Internal Server Error.
Способ третий:
В теле вашего скрипта (например, config.php) пишем:
<?php
ini_set('memory_limit', '100M');
?>
Самый простой и безопасный ход решения проблемы. Меня выручает постоянно.
Информационная безопасность → Вы несете деньги в Банк, Банки несут деньги в Bitrix
Требования безопасности к сайтам финансовых компаний должны быть максимально жесткими. Мы просмотрели сайты ведущих банков России и зарубежных филиалов и обнаружили, что многие банки оставляют открытый доступ к панели администрирования Bitrix. То есть папке /bitrix/admin/
Информационная безопасность → Банлисты для .htaccess: от XSS до SQL-инъекций. Бонусом плохие реферреры и UA
После топика о способах обнаружения плохоботов,
всеобщее счастье было бы неполным без готовых списков нечисти, кем-то уже собранных.
Удивительно, но поиск не дал результатов по слову «perishable»,
то бишь самый продвинутый ресурс по .htaccess защите не упоминался на хабре ни разу.
Разработка продвинутых бан-листов ведется автором с 2006г., действует уже четвертое поколение списка (и намечается 5-е).
Он же утверждает, что повышение нагрузки на Апач от порядком разросшегося списка — незаметное,
по сравнению с тем как полегчало серверу после слива агентов матрицы и просто кидисов.
всеобщее счастье было бы неполным без готовых списков нечисти, кем-то уже собранных.
Удивительно, но поиск не дал результатов по слову «perishable»,
то бишь самый продвинутый ресурс по .htaccess защите не упоминался на хабре ни разу.
Разработка продвинутых бан-листов ведется автором с 2006г., действует уже четвертое поколение списка (и намечается 5-е).
Он же утверждает, что повышение нагрузки на Апач от порядком разросшегося списка — незаметное,
по сравнению с тем как полегчало серверу после слива агентов матрицы и просто кидисов.
Персональные блоги → Определение адреса страницы после RewriteRule с использованием mod_proxy
Столкнулся с проблемой, которую коллегиально решали почти сутки.
Вкратце: есть сайт, все страницы/шаблоны которого обрабатываются и отдаются через единый index.php, и к тому же для организации ЧПУ (friendly urls) использован htaccess с весьма немалым списком различных правил RewriteRule.
И всё бы хорошо, но вот понадобилось для решения одной задачи знать, а какой же адрес запрашивает клиент. То есть фактически php скрипт знать-не-знает что ввел пользователь в адресной строке, так как запрос он получает уже он htaccessа который и вызывает нужны скрипт.
Вкратце: есть сайт, все страницы/шаблоны которого обрабатываются и отдаются через единый index.php, и к тому же для организации ЧПУ (friendly urls) использован htaccess с весьма немалым списком различных правил RewriteRule.
И всё бы хорошо, но вот понадобилось для решения одной задачи знать, а какой же адрес запрашивает клиент. То есть фактически php скрипт знать-не-знает что ввел пользователь в адресной строке, так как запрос он получает уже он htaccessа который и вызывает нужны скрипт.
Я пиарюсь → PHP Speedy — наше все
Что такое PHP Speedy? Это набор php-скриптов, которые позволяют объединять и сжимать CSS- и JS-файлы для веб-сайта, написанного на PHP. Изначально разрабатывался как приложение к Wordpress, но сейчас получил более широкое распространение.PHP Speedy был выбран в качестве основы для начала разработки Web Optimizer — веб-приложения, автоматизирующего клиентскую оптимизацию. Предполагается, что такое приложение можно будет максимально быстро и максимально легко развернуть на любой платформе, а оно уже само позаботится о всех действиях, связанных со скоростью загрузки страницы.
Как показала практика, клиентская оптимизация интересует большой круг людей. Но очень многих останавливает то, что нужны специальные знания для освоения этой области. Web Optimizer создается как раз, чтобы убрать этот барьер (и как наш ответ
Персональные блоги → Помогите разобраться с mod_rewrite
Здравствуйте!
Прошу помощи в написании одного несложного правила перенаправления для mod_rewrite.
Требуется, чтобы для всех ссылок, запрашивающих любые элементы (графика, ситили, скрипты) действовало следующее правило перенаправления:
Если запрошен элемент, содержащий в адресе "../" допустим (../css/generic.css), перенаправить его на адрес: базовая_директория/view/[запрошенный_адрес] (css/generic.css).
Прошу помощи в написании одного несложного правила перенаправления для mod_rewrite.
Требуется, чтобы для всех ссылок, запрашивающих любые элементы (графика, ситили, скрипты) действовало следующее правило перенаправления:
Если запрошен элемент, содержащий в адресе "../" допустим (../css/generic.css), перенаправить его на адрес: базовая_директория/view/[запрошенный_адрес] (css/generic.css).
Wordpress → Ускоряем wordpress
Привет.
Думаю, среди читателей хабра найдется немало тех, кто имеет stand-alone blog на движке wordpress.
Так вот, для вас, дорогие мои, у меня есть две новости, как водится, плохая и хорошая.
Плохая состоит в том, что wordpress — довольно-таки тормознутая штука.
Виноваты в этом в основном криворукие производители тем и, особенно, криворукие производители плагинов. Особенно кривой плагин, на мой вкус, wp-ajax-edit-comments, который является образцом быдлокодинга.
Хорошая — в том, что это можно поправить.
Думаю, среди читателей хабра найдется немало тех, кто имеет stand-alone blog на движке wordpress.
Так вот, для вас, дорогие мои, у меня есть две новости, как водится, плохая и хорошая.
Плохая состоит в том, что wordpress — довольно-таки тормознутая штука.
Виноваты в этом в основном криворукие производители тем и, особенно, криворукие производители плагинов. Особенно кривой плагин, на мой вкус, wp-ajax-edit-comments, который является образцом быдлокодинга.
Хорошая — в том, что это можно поправить.
Персональные блоги → Пользовательские виртуальные домены
Если посмотреть на URL-адрес профиля пользователя habrahabr.ru, то можно увидеть, что доменом третьего уровня является его логин.
Этот подход носит название «пользовательские виртуальные домены».
Этот подход носит название «пользовательские виртуальные домены».
Персональные блоги → Запрет индексации сайта поисковыми ботами при помощи.htaccess
При активной разработке многие используют копии сайта в других доменах, для эксперементов или доработки сайтов (не на работающем же вносить изменения).
И вот многие сталкиваются с проблемой как отгородить поисковики от этого домена и притом оставить рабочую версию сайта.
Проще всего и без вмешательств в код это сделать при помощи .htaccess
Создаем файл .htaccess и пишем в нем:
для проверки работоспособности можно использовать следующий PHP-скрипт
ну вот теперь можно полностью эксперементировать и никто не узнает про существование экспериментальной копии Вашего сайта ;)
И вот многие сталкиваются с проблемой как отгородить поисковики от этого домена и притом оставить рабочую версию сайта.
Проще всего и без вмешательств в код это сделать при помощи .htaccess
Создаем файл .htaccess и пишем в нем:
SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Yahoo" search_bot
SetEnvIfNoCase User-Agent "^igdeSpyder" search_bot
SetEnvIfNoCase User-Agent "^Robot" search_bot
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
SetEnvIfNoCase User-Agent "^msnbot" search_bot
SetEnvIfNoCase User-Agent "^Aport" search_bot
SetEnvIfNoCase User-Agent "^Mail" search_bot
SetEnvIfNoCase User-Agent "^bot" search_bot
SetEnvIfNoCase User-Agent "^spider" search_bot
SetEnvIfNoCase User-Agent "^php" search_bot
SetEnvIfNoCase User-Agent "^Parser" search_bot
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=search_bot
</Limit>для проверки работоспособности можно использовать следующий PHP-скрипт
<?php
if(empty($_POST)) {
?>
<form action="?" method="post">
<table><caption>Открываем сайт представлясь под любым User-Agent</caption>
<tr><td>User-Agent</td><td><input type="text" size="40" name="ua" value="GoogleBot"></td></tr>
<tr><td>Host</td><td><input type="text" size="40" name="host" value="www.exemple.com"></td></tr>
<tr><td>GET</td><td><input type="text" size="40" name="get" value="/index.php"></td></tr>
<tr><td> </td><td><input type="submit" value='Отправить'></td></tr>
</table>
</form>
<?php
} else {
echo "<b>Отправляем заголовки:</b><br>";
$host=$_POST['host'];
$get=$_POST['get'];
$ua=$_POST['ua'];
$headers=array(
'get'=>'GET '.$get.' HTTP/1.0',
'host'=>'host:'.$host,
'useragent'=>'User-Agent:'.$ua,
'cc'=>'Connection: close'
);
echo "<pre>"; print_r($headers); echo "</pre><br><br><b>Ответ сервера:</b><br>";
$out="";
$spy=fsockopen($host,80,$errno,$errstr,20);
if(!$spy) $page.="<font color=red>Ошибка создания сокета</font>";
elseif(fwrite($spy,implode("\r\n",$headers)."\r\n\r\n"))
while(!feof($spy))
$out.=fgets($spy,1024);
echo '<pre>'.htmlspecialchars($out).'</pre>';
}
?>ну вот теперь можно полностью эксперементировать и никто не узнает про существование экспериментальной копии Вашего сайта ;)