- 1
- 2
- 3
- 4
- 5
# сегодняшнее число
$date2 = date(
"d.m.Y",
mktime(0, 0, 0, date("m") , date("d"), date("Y"))
);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+160
# сегодняшнее число
$date2 = date(
"d.m.Y",
mktime(0, 0, 0, date("m") , date("d"), date("Y"))
);
+181.3
$str=тут запрос и всё такое сам поймёшь Например Ник или Пароль;
$col=strlen($str);
for($i=0; $i <= $col ;$i++)
{
$d=1;
$b= substr($str,$i,$d);
$d++;
if($b == chr(92)) { exit ("Hack attemp!!!"); }
}
http://www.askdev.ru/question/1427/Как-защититься-от-sql-инъекций/#answer2891
+157.2
public function is_image($mime) {
//Функция проверяет по mime типу является ли поступивший файл изображением
$images_mime = array('image/jpeg','image/pjpeg','image/png','image/cgm','image/fits','image/g3fax',
'image/gif','image/ief','image/jp2','image/jpm','image/jpx','image/naplps',
'image/prs.btif','image/prs.pti','image/t38','image/tiff','image/tiff-fx',
'image/vnd.adobe.photoshop','image/vnd.cns.inf2','image/vnd.djvu','image/vnd.dwg',
'image/vnd.dxf','image/vnd.fastbidsheet','image/vnd.fpx','image/vnd.fst',
'image/vnd.fujixerox.edmics-mmr','image/vnd.fujixerox.edmics-rlc','image/vnd.globalgraphics.pgb',
'image/vnd.microsoft.icon','image/vnd.mix','image/vnd.ms-modi','image/vnd.net-fpx',
'image/vnd.sealed.png','image/vnd.sealedmedia.softseal.gif','image/vnd.sealedmedia.softseal.jpg',
'image/vnd.svf','image/vnd.wap.wbmp','image/vnd.xiff');
if(!in_array($mime,$images_mime)) {
//Не было найдено совпадений mime типа - это не картинка
return false;
}
else {
//Было найдено совпадение mime типа
return true;
}
}
Кучка бредокода ради закрытия уязвимости.
+163.5
$this->query_insert($this, array('', $mode, '', '',$id_group_new, $id_subgroup, $id_product,
'', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '', '', ''));
Вышел на этот кусок гкода с ошибки о неверном количестве значений в sql insert, не удивился :)
+154.1
$style = ( U_AREA != 'admin' and !defined('U_AREA_MOD') ) ? 'public/templates/' . URegistry::$settings['default_template']['value'] : 'sources/skin_acp/' . SKIN_ACP;
ололо
+163.3
#_connect
mysql_connect("XX.XXX.XX.XX","user","pass") or die("chect db connect settings o_o'");
mysql_select_db("database") or die("db not found O_o");
#_
$ip=GetIP();
$date=date("Y-m-d H:i:s");
$browser=GetBrowser();
$referer=$_SERVER['HTTP_REFERER'];
$sql="CREATE TABLE `Stats` (
`ip` VARCHAR( 19 ) NOT NULL ,
`date` DATETIME NOT NULL ,
`browser` VARCHAR( 30 ) NOT NULL ,
`referer` VARCHAR( 128 ) NOT NULL ,
`count` MEDIUMINT NOT NULL ,
PRIMARY KEY ( `ip` )
);";
if (!defined("ADMIN"))
{
$sql="SELECT * FROM `Stats` WHERE `ip` = '$ip'";
$res=mysql_query($sql); $arr=mysql_fetch_array($res);
if (!empty($arr))
{ $sql="UPDATE Stats SET Stats.count = Stats.count +1 WHERE ip = '$ip'";
@mysql_query($sql);
$sql="UPDATE Stats SET Stats.date = '$date' WHERE ip = '$ip'";
@mysql_query($sql);
}
else
{ $sql="
INSERT INTO `Stats`
( `ip` , `date` , `browser` , `referer` , `count`, `first_date` ) VALUES
('$ip', '$date', '$browser', '$referer', 1, '$date');
";
@mysql_query($sql);
};
};
Function GetBrowser()
{ $useragent = $_SERVER['HTTP_USER_AGENT'];
$brows = 'none';
if(strpos($useragent, "Mozilla") !== false) $brows = 'Mozilla Firefox';
if(strpos($useragent, "MSIE") !== false) $brows = 'Microsoft Internet Explorer';
if(strpos($useragent, "MyIE") !== false) $brows = 'MyIE';
if(strpos($useragent, "Opera") !== false) $brows = 'Opera';
if(strpos($useragent, "Netscape")!== false) $brows = 'Netscape';
if(strpos($useragent, "Firefox") !== false) $brows = 'Mozilla Firefox';
return $brows;
};
Function GetIP()
{
$ip = $_SERVER['REMOTE_ADDR']; if(empty($ip)) $ip=$_SERVER['X_FORWARD_FOR'];
if(empty($ip)) $ip = '0.0.0.0';
return $ip;
};
Этот код инклюдится первой строкой в index.php.
Особенно феерично выглядит
--
$sql="SELECT * FROM `Stats` WHERE `ip` = '$ip'";
$res=mysql_query($sql); $arr=mysql_fetch_array($res);
--
На момент аудита исходников в таблице Stats было более 300 тысяч записей и index.php отдавался примерно за 1.5 сек
+147.2
if(!empty($_POST))
{
$url = trim($_POST['url']);
if((substr($url, 0, 7)) == "http://") $url = str_replace('http://','',$url);
if((substr($url, 0, 4)) == "www.") $url = str_replace('www.','',$url);
if(strpos($url,'/')>0) list($url) = explode('/',$url);
$domain = array(
array("ac","whois.nic.ac","No match"),
array("ac.cn","whois.cnnic.net.cn","no matching record"),
array("ac.jp","whois.nic.ad.jp","No match"),
array("ac.uk","whois.ja.net","No such domain"),
array("ad.jp","whois.nic.ad.jp","No match"),
array("adm.br","whois.nic.br","No match"),
array("adv.br","whois.nic.br","No match"),
array("aero","whois.information.aero","is available"),
array("ag","whois.nic.ag","Not found"),
array("agr.br","whois.nic.br","No match"),
array("ah.cn","whois.cnnic.net.cn","No entries found"),
array("al","whois.ripe.net","No entries found"),
array("am","whois.amnic.net","No match"),
array("am.br","whois.nic.br","No match"),
array("arq.br","whois.nic.br","No match"),
array("at","whois.nic.at","nothing found"),
array("au","whois.aunic.net","No Data Found"),
array("art.br","whois.nic.br","No match"),
array("as","whois.nic.as","Domain Not Found"),
array("asn.au","whois.aunic.net","No Data Found"),
array("ato.br","whois.nic.br","No match"),
array("av.tr","whois.nic.tr","Not found in database"),
array("az","whois.ripe.net","no entries found"),
array("ba","whois.ripe.net","No match for"),
array("be","whois.geektools.com","No such domain"),
array("bg","whois.digsys.bg","does not exist"),
array("bio.br","whois.nic.br","No match"),
array("biz","whois.biz","Not found"),
array("biz.tr","whois.nic.tr","Not found in database"),
array("bj.cn","whois.cnnic.net.cn","No entries found"),
array("bel.tr","whois.nic.tr","Not found in database"),
array("bmd.br","whois.nic.br","No match"),
array("br","whois.registro.br","No match"),
array("by","whois.ripe.net","no entries found"),
array("ca","whois.cira.ca","Status: AVAIL"),
array("cc","whois.nic.cc","No match"),
array("cd","whois.cd","No match"),
array("ch","whois.nic.ch","We do not have an entry"),
array("cim.br","whois.nic.br","No match"),
array("ck","whois.ck-nic.org.ck","No entries found"),
array("cl","whois.nic.cl","no existe"),
array("cn","whois.cnnic.net.cn","No entries found"),
array("cng.br","whois.nic.br","No match"),
// ...
// Поскипана ещё куча таких же строк
);
$end = substr($url, strpos($url, ".") + 1);
for($i = 0; $i < count($domain); $i++)
{
if($domain[$i][0] == $end)
{
$whois = $domain[$i][1];
$no_found = $domain[$i][2];
break;
}
}
if(empty($whois)) exit("Нет данных по этому домену");
@$fp = fsockopen($whois, 43) or exit ("Ошибка при обращении к серверу");
fputs($fp, "$url\r\n");
$answer = "";
while(!feof($fp))
{
$answer .= "<tr><td>".fgets($fp,128)."</tr></td>";
}
fclose($fp);
$answer = preg_replace("/".$no_found."/is", "Домен не найден.", $answer);
echo "<h2>Информация о $url</h2>";
echo "<table width=80%>";
echo $answer;
echo "</table>";
}
Кто первый разберется тот красавец)
Отсюда: http://forum.wec.ru/index.php?showtopic=109033
+147.8
<?php
// *** Первая версия ***
$numb = $_GET["n"]; // Получаем информацию
$from = $_GET["f"];
$to = $_GET["t"];
if (!$numb or !$from or !$to) { // Проверяем есть ли информация, и полна ли она
echo "<html><head><title>Перевод между сист. исчисл. 2<->36</title></head><body>"; // Выводим справку и ошибку
echo "<center><u><i>Справка:</i></u> index.php?n=<b>число</b>&f=<b>исходная сист. исчисл.</b>&t=<b>конечная сист. исчисл.</b><hr></center>";
echo "<center><b>ОШИБКА: Данные не обнаружены или неполные!</b><br>Возможно, что вы тут в первый раз...</center>";
echo "</body></html>";
} else {
echo "<html><head><title>Перевод между сист. исчисл. 2<->36</title></head><body>"; // Выводим справку и результаты
echo "<center><u><i>Справка:</i></u> index.php?n=<b>число</b>&f=<b>исходная сист. исчисл.</b>&t=<b>конечная сист. исчисл.</b><hr></center>";
echo "<center>Исходное число: $numb<br>";
echo "Начальная сист. исчисл.: $from<br>";
echo "Конечная сист. исчисл.: $to<br>";
echo "Результат: ";
echo base_convert("$numb",$from,$to);
echo "</center></body></html>";
}
?>
<?php
// *** Вторая версия - форма ***
echo "<html><head><title>Перевод между С.И.</title></head><body>"; // Выводим форму
echo "<center><form method='post' action='new_e.php'>Исходное число:<br><input type = 'text' name='n'><hr>";
echo "Исходная С.И.:<br><input type='radio' name='f' value='2'>BIN (2)<br>";
echo "<input type='radio' name='f' value='8'>OCT (8)<br>";
echo "<input type='radio' name='f' value='10'>DEC (10)<br>";
echo "<input type='radio' name='f' value='16'>HEX (16)<br>";
echo "<hr>";
echo "Конечная С.И.:<br><input type='radio' name='t' value='2'>BIN (2)<br>";
echo "<input type='radio' name='t' value='8'>OCT (8)<br>";
echo "<input type='radio' name='t' value='10'>DEC (10)<br>";
echo "<input type='radio' name='t' value='16'>HEX (16)<br>";
echo "<hr><input type='submit' value='Выполнить'></form></center>";
echo "</center></body></html>";
?>
<?php
// *** Вторая версия - вычисления ***
$numb = $_POST["n"]; // Получаем информацию
$from = $_POST["f"];
$to = $_POST["t"];
echo "<html><head><title>Перевод между С.И.</title></head><body>"; // Выводим результаты
echo "<center>Исх. число: $numb<br>";
echo "Начальная С.И.: $from<br>";
echo "Конечная С.И.: $to<br>";
echo "Результат: ";
echo base_convert("$numb",$from,$to);
echo "<hr><center><a href='/new.php'>Назад</a></center>";
echo "</center></body></html>";
?>
Одно из первых моих творений, переводит числа в различные системы исчисления. Представлено две первые версии, одна получала через GET, а другая уже через POST. Первая "ручная" (то есть вбиваем в адрес данные ручками), а другая состояла из двух файлов (формы и собственно обработка и выполнение операции с полученных данных).
Говнокод заключается в злоупотреблении ECHO (не думаю, что закинуть полученные данные в переменные тоже грех особый). Позже в третьей версии скрипта все было приведено в норму, и два файла были совмещены в один :)
+168.4
if (count($_SESSION["cart"]["discs"])==0)
{
$poryadochek="yes";
} else {
$poryadochek="no";
}
Verbose programming.
+171.7
while (true) {
load_config();
break;
}