Разделы
Теги | RSS © 2008 – 2017
Контакты
email: igor@veselov.sumy.ua
skype: utz0r2

Критическая уязвимость DLE 8.2


Недостаточная фильтрация входящих данных в модуле восстановления пароля. Очень-очень опасно!

Ошибка в версии: только 8.2, версии ниже 8.2, а также актуальная версия 8.3 данной уязвимости не подвержены

Степень опасности: Очень высокая.

Как это работает:

Вы обращаетесь по адресу site/index.php?do=lostpassword&douser=1&lostid=

...и получаете свеже испеченый логи и пароль админа

Поэтому: следите за обновлениями и переименовуйте admin.php. А те подованы которые ломали этот сайт педики!

Скачать патч: Скачать патч

Картинка в стороне от текста без обтекания


К примеру есть на сайте набор вот таких блоков: картинка + заголовок + выдержка.
В коде соответственно имеем:
<div class=”post”>
<img src=”./i/image.jpg” alt=”" />
<h2><a href=”#”>Heading</a></h2>
<p>text tex text text text text</p>
</div>

Cуть проблемы в том что заказчик хочет картинку с одной стороны блока и текст с другой. И это при том что картинка может быть какого угодно размера.

Итак первое и очевидное сделать float:left; картинке, но тогда появится обтекание. Если бы знать размеры картинок - можно бы было задать ширину для выдержки и заголовка. Но в том то и дело что картинки эти могут быть любыми. Казалось бы без таблиц не обойтись, а не тут то было, можно:
div.post p{ 
display: table;
_height: 0;/*это для ИЕ5-6*/
zoom: 1;/*это для ИЕ7*/
}


Эта приблуда должна работать в Opera 7-8, Firefox 1.0, Safari 1.2.4, IE/win

Хак DLE ограничение длины новости


Не сложно догадаться, что я тесно связан с разработкой сайтов на коммерческой CMS - DLE.

И не давно столкнулся с проблемой которую никогда не видел. Оказуется длинна поста в fullstory ограничена в БД полем типа TEXT. Все что больше определенной длины вырезается.

Что бы избежать этой проблемы нужно указать тип LONGTEXT. Всего-то -)

Фап в интерпретатор PHP


Еще регулярные выражения и парочка полезных функций, честно скопипастеный где-то на просторах интернета:

Яндекс тИЦ
function cy($url){ 
preg_match("/value=\"(.\d*)\"/", join("", file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$url.'/')), $tic);
return($tic[1]!=""?$tic[1]:0); }


Яндекс число страниц в индексе
function ya_stat($url){
$str=file_get_contents("http://yandex.ru/yandsearch?numdoc=10&serverurl={$url}");
preg_match("\/<title>(.*)нашл(.*)сь(.*)страниц(.*)</title>/s", $str, $find); $res=$find[3];
if(preg_match("/<title>(.*)ничего не найдено(.*)<\/title>/s", $str)) {$res=0;}
$res=str_replace("&nbsp;","",$res);
$res=str_replace("млн","000000",$res);
$res=str_replace("тыс.","000",$res);
return $res;}


Веб прокси
echo file_get_contents($_GET['q']);
$content=file_get_contents("http://урл.сайта/имя.скрипта?=".$url);


LiveInternet статистика
function listat($url){
$content = file_get_contents("http://counter.yadro.ru/values?site=".$url);
preg_match_all("|LI_([^ ]+) = (\d*);|",$content,$ok);
for($i=0; $i<count($ok[1]); $i++) $info[$ok[1][$i]]=$ok[2][$i];
return $info;}

$ff=listat($url);
$w_vis=floor($ff[week_vis]/7);
$w_hit=floor($ff[week_hit]/7);//Средняя посещаемость за последнюю неделю
$li_vis=$ff[day_vis];
$li_hit=$ff[day_hit];//И дневная посещаемость
echo "Week $w_vis / $w_hit, today $li_vis / $li_hit";


Информация для счетчика LiveInternet. Показывается для всех сайтов, которые не закрыли отображение инфы на счетчике (даже если сама статистика закрыта). Удобно как анализировать чужие сайты, так и просматривать суммарную посещаемость своих.

Регулярные выражения


Последнее время очень часто приходиться сталкиваться с регулярными выражениями. И для понимания они очень сложны. Повторить по памяти выражение я не смогу поэтому выложу сюда как записку для себя и как заметку для вас:

Удалить определенную ссылку:
$text=preg_replace("~<a href=\"http://www\.aaa\">[^<]+?</a>~",'',$text);

За это решение спасибо setty

Удалить спецсимволы:
$text = preg_replace ("~(\\|\*|\?|\[|\?|\]|\(|\$|\))~", "",$text);


Вывести число подписчиков в FeedBurner:
function fb($feed){
$s=file_get_contents("http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri={$feed}");
preg_match('/circulation="(\d+)"/', $s, $a);
return $a[1];}


Выводим Alexa Rank:
function alexa($url) {
preg_match('#<div class="data .+?">(.*?)</div>#si', file_get_contents("http://www.alexa.com/siteinfo/{$url}"), $a);
return trim(str_replace(",","",strip_tags($a[1])));}

Просто и удобно, отправка по Ctrl+Enter


Собственно код:
<script type="text/javascript">
function ctrlEnter(event, formElem)
    {
    if((event.ctrlKey) && ((event.keyCode == 0xA)||(event.keyCode == 0xD)))
        {
        formElem.submit.click();
        }
    }
</script>
<form action="send.php" method="post" onkeypress="ctrlEnter(event, this);">...</form>


зы: Сменил хостера (ну и домен самосабой кто не заметил) сайт должен на порядок быстрей грузиться.
«»
Вверх