Уязвимость связки php + nginx
Summary
Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов

(далее...)
Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов

(далее...)
Сегодня поступило предложение с кафедры пойти на испытательный срок в одну небезызвестную компанию в качестве Perl программиста. Если учесть, что на нашем потоке его никто в глаза не видел и у нас несколько не «программистская» специальность, а больше железная — странно было услышать это от него. Но, чем черт не шутит. Начальные требования — знание MySQL (а желательно Oracle), Perl (базовый синтаксис) и желание обучаться. Пораскинул я мозгами и решил попробовать. Сейчас сижу и осваиваю тот самый базовый синтаксис, что необходим для работы.
P.S. Хочу все таки попробовать перегнать все записи (и комментарии) в самописный движок. Думаю он будет сделан с помощью Codeigniter. Осталось только за него взяться.
Иногда я жалею, что живу не в Москве или не в Питере.
Вот как, например, в тех ситуациях, когда в Москве происходит DevConf (особенно заинтересовала PhpConf ()). С удовольствием бы посетил, но тратить такое количество денег пока не готов... :(
Я решил тоже начать писать об этом безусловно отличном фреймворке на PHP, т.к. вот уже 2 месяца мой проект разрабатывается именно на нем. Мой выбор пал на этот фреймворк из-за его скорости, удобства применения, множественной документации (как на русском, созданной поклонниками этого фреймворка, так и официальной, английской). Итак — этот пост начало моим постам посвященным этому фреймворку.
Пока ещё не разобрался в чем проблема может быть. Может быть просто по дефолту выключена функция mail () в php, т.к. я сильно не копался в конфигах. У кого какие есть соображения?
P.S. Сегодня в первый раз сидел за рулем собственного авто. Выезд в город. Пока документы оформляли, пока то, пока се. Короче затянулось это все хозяйство. Но теперь я уже почти на колесах (т.к. эту машину забираю я, а родители, надеюсь, в ближайшем будущем купят себе новую). Отдал часть денег за машину родителям (на новую), но когда будет — хз.
Итак, все мои домены (основные и мои личные) переезжают на выделенный сервер в германии, к кейвебу. В связи с чем в ближайшем будущем (примерно 3-4 дня) возможны проблемы с плагинами, может что-нибудь подглючивать — значит я все ещё настраиваю сервер. В прочем apache, php, mysql и несколько твиков для защиты от кулхацкеров я уже поставил. Осталось допинать апач, чтобы еррор лог был поменьше.
Так что если кто-то заметит какие-то баги в работе сайта (в частности этого) — сообщайте — буду только рад =]
И ещё — какие плагины к пхп подключить бы в первую очередь? Перечислите, кому не сложно =]
P.S. В скором времени я закрываю свой блог на лиру и отключаю кросспостинг туда. Не вижу смысла держать 10 блогов.
Наконец-то мы дождались — вышел новый плагин кросспостинга для LiveInternet.ru, который называется Lici. Точнее вышла его новая версия — 0.4. Разработка длилась очень долго только потому, что и мне было лень и у других не было времени. Но на позапрошлой неделе я решил, что пора взяться за дело и... читайте описание то, что теперь плагин умеет (далее...)
Как я уже говорил — моя практика в университете заключается в том, что я должен написать приложение на php, которые будет подсчитывать количество повторяющихся в тексте символов и которые строго определены в конфиге (который может содержаться и в текстовом файле и просто передаваться через textarea). Как только мне задали это задания — я подумал о Google Charts о котором недавно читал на хабрахабре.
Вчера я сел и написал это небольшое приложение:
function graphfile($SUPPORTCHARS, $file=false, $text=false)
{
$str = array(); //for sting
$ch=0;
if($text && !$file)
{
$file = fopen("tmp/tmp.txt", "w");
fwrite($file, $text);
fclose($file);
$file = fopen("tmp/tmp.txt", "r");
}
while(!feof($file))
{
$str = fgets($file);
$lenstr = strlen($str);
for($i=0;$i<=$lenstr;$i++)
{
if($str[$i]!=NULL && strstr($SUPPORTCHARS, $str[$i]))
{
$pt = $ch;
$tr = 0;
for($j=0;$j<$ch;$j++)
{
if($chars[$j][1]==$str[$i])
{
$pt = $j;
$tr = 1;
}
}
if($tr!=1)
{
$chars[$pt][1]=$str[$i];
$chars[$pt][0]=0;
}
for($j=0;$j<=$lenstr;$j++)
{
if($str[$j]==$chars[$pt][1])
{
$str[$j]=NULL;
$chars[$pt][0]++;
}
}
if($tr!=1) $ch++;
}
}
}
fclose($file);
$charturl = "http://chart.apis.google.com/chart?cht=bvs&chxt=x,y,x&";
$width = $ch*20;//chs=$widthx$height;
$height = 400;
do{
$height--;
$width--;
}while(($width*$height)>300000 || $width>1000);
sort($chars);
$vars = "0:|";
$data = "2:|";
$maxv = 0;
$chb = 15;
for($i=0;$i<$ch;$i++)
{
$vars .= $chars[$i][0]."|";
$data .= $chars[$i][1]."|";
if($chars[$i][0]>$maxv) $maxv = $chars[$i][0];
}
$charturl .= "chs=".$width."x".$height."&";
$simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.';
$chartData = "s:";
for ($i = 0; $i < $ch; $i++) {
$currentValue = $chars[$i][0];
if ($currentValue > -1) {
$chartData.=substr($simpleEncoding,61*($currentValue/$maxv),1);
}
else {
$chartData.='_';
}
}
$charturl .= "chd=".$chartData."&chbh=".$chb."&chco=76A4FB&chxl=".$vars."1:|0|".($maxv/2)."|".$maxv."|".$data;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=<?=$_CHARSET;?>" />
<title><?=_TITLE;?></title>
</head>
<body>
<h3><i><?=_TITLE;?></i></h3>
<p><i><?=_GRAPHTITLE;?></i></p>
<?=$error;?>
<table>
<tr>
<td>
<?php
echo "<a href = \"".$charturl."\" target = \"_blank\"><img src = \"".$charturl."\" border = \"0\" width = \"".$width."\" height = \"".$height."\"/></a>";
?>
</td>
</tr>
<tr>
<td>
<a href = "index.php"><?=_NEWGRAPH?></a>
</td>
</tr>
</table>
</body>
</html>
<?php
}
В прочем в построении графика не было ничего необычного. С помощью отдельной функции я считал повторяющиеся в тексте символы, которые разрешены для учета.
Те, кому не терпится посмотреть исходных код программы я могу предложить посмотреть исходный код функции, которая обрабатывает данные из файла и строит графики.
(далее...)
Решил отмазаться написав небольшой скрипт на php. Написал — не понравилось, что слишком долго работает на больших файлах — стер основной код и теперь пишу заново. С рекурсией, сортировкой и все со старыми добрыми изученными на первом курсе методами.
Программка — ТекстоГрафик. Считает повторяющиеся в текстовом файле или тексте в textarea символы по заранее заданному шаблону и строит графики их использования с помощью Google Charts. Кстати, Google Charts — крайне удобный метод работы с графиками. Мы не подгружаем свой сервер, но и получаем графики, которые и качественные и в любой момент этот график можно изменить на другой не прибегая к особым знаниям в программировании. Надо будет написать как-нибудь статью по использованию этой радости. В общем — советую :)