- 1
http://blog.extremehacking.org/blog/2017/07/31/hungarian-hacker-arrested-pressing-f12/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+4
http://blog.extremehacking.org/blog/2017/07/31/hungarian-hacker-arrested-pressing-f12/
Вкратце: в Будапеште за миллион баксов набыдлокодили систему продажи билетов на общественный транспорт с кучей багов, как например поле с суммой было readonly, но если поправить html в браузере, то можно цену поменять, а на бэкенде никто не стал проверку суммы делать. Пацанчик этот баг нашел, написал в саппорт, а через 2 недели его мусора загребли.
+1
<?php
/*
exit('<!DOCTYPE HTML><html><head>
<meta charset=UTF-8>
<title>Eridon</title>
</head>
<body style="color:#2b9e00">
<h1 style="text-align:center;margin:50px 0"><img src=logo.png style="vertical-align:middle"><br>Сайт на реконструкції</h1>
<h2 style="text-align:center">Відкриття оновленого сайту 13 липня</h2>
</body>
</html>');
*/
$Langs=array('uk','ru','en');
$start=microtime(true);
$A=explode('.',$_SERVER["SERVER_NAME"]);
if(in_array($A[0],array('en','uk','ru'))){
$root=substr($_SERVER["DOCUMENT_ROOT"],0,strpos($_SERVER["DOCUMENT_ROOT"],'/'.$A[0]));
$root.='/www';
$subhost=$A[0];
unset($A[0]);
$host=implode('.',$A);
}else{
$root=$_SERVER["DOCUMENT_ROOT"];
$host=$_SERVER["SERVER_NAME"];
}
$host='//'.$host;
if(!empty($_GET['img'])){include $root.'/1/img.php';exit;}
session_start();
if(!empty($_SESSION['lang'])){
$lang=$_SESSION['lang']; //начальное значение языка - чтобы при обращении к отсутствующему файлу (404) возвращать прежнее значение языка
}
//if(isset($_GET['unset'])){unset($_SESSION['client']);}
$t=substr($_SERVER["REQUEST_URI"],1,3);
//echo '<li>root='.$root.'<li>host='.$host.'<li>t='.$t.'<li>URI='.$_SERVER["REQUEST_URI"];
header('URI:'.$_SERVER["REQUEST_URI"]);
header('t:'.$t);
//$REQUEST=substr($_SERVER["REQUEST_URI"],3);
if(!isset($_GET['ajx'])){
$REQUEST=substr($_SERVER["REQUEST_URI"],3);
//Вариант указания основного $Langs[0] и дополнительных языков
$n=count($Langs);
for($i=$n-1;$i>=0;$i--){
if($t==$Langs[$i].'/'){$_SESSION['lang']=$Langs[$i];unset($n);break;}
}
if(isset($n)){ //цикл не дал результата
$REQUEST=$_SERVER["REQUEST_URI"];
$_SESSION['lang']=$Langs[0];
}
if(empty($_SESSION['lang'])){
if(empty($subhost)){
$_SESSION['lang']=$Langs[0];
}else{$_SESSION['lang']=$subhost;}
}
}
if(!empty($_SERVER["HTTP_REFERER"])&& strpos($_SERVER["HTTP_REFERER"],$_SERVER["SERVER_NAME"])===false){
file_put_contents(
$root.'/1/log/log.txt',
date("Y.m.d H:i:s")
."\t".$_SERVER["REMOTE_ADDR"]
."\t".$_SERVER["HTTP_REFERER"]
."\t".$_SERVER["REQUEST_URI"]
."\t".$_SERVER["HTTP_USER_AGENT"]
."\n",
FILE_APPEND
);
}
require $root.'/1/class.db.php';
DB::getInstance();
require $root.'/1/functions.php';
$isIE=strpos($_SERVER["HTTP_USER_AGENT"],'Trident');
if($isIE){
$isIE=1;
}else{
$isIE=strpos($_SERVER["HTTP_USER_AGENT"],'Edge');if($isIE){$isIE=2;}
}
//$isIE=strpos($_SERVER["HTTP_USER_AGENT"],'Trident') || strpos($_SERVER["HTTP_USER_AGENT"],'Edge');
if(isset($_GET['ajx'])){require $root.'/1/ajx.php';exit;}
$headerStr='';
require $root.'/1/sUrl.php'; //функции текстовых URL
require $root.'/1/urlAr.php'; //текстовые URL
Когда очень крутая и серьёзная контора, стекло-стальной офис которой в Киеве занимает несколько гектаров места, а уборщицы ездят на работу на лексусах, выбирает "веб-студию" подешевле. Я такое говно вижу впервые. Фреймворки? ООП? MVC? В жопу! SQL инъекции? $_GET['p']=intval($_GET['p']); победит любых хакеров!
Первые 100 строчек точки входа - index.php
0
<a title="<?php echo trans('Download')?>" class="tip-right" href="javascript:void('')" onclick="$('#form<?php echo $nu;?>').submit();"><i class="icon-download"></i></a>
<?php if($is_img && $src_thumb!="" && $file_array['extension']!="tiff" && $file_array['extension']!="tif"){ ?>
<a class="tip-right preview" title="<?php echo trans('Preview')?>" data-url="<?php echo $src;?>" data-toggle="lightbox" href="#previewLightbox">
<i class=" icon-eye-open"></i></a><?php }elseif(($is_video || $is_audio) && in_array($file_array['extension'],$jplayer_ext)){ ?>
Немножечко говнокода из глубин французского файлового менеджера.
И такого там...
0
public function upload($deleteTempFile = true)
{
$tmp = $_FILES['UploadExcelFileInn']['tmp_name']['fileExcel'];
$file = '/home/user/public/documents/FileExcel.' . $this->fileExcel->extension;
if ($deleteTempFile) {
return move_uploaded_file($_FILES['UploadExcelFileInn']['tmp_name']['fileExcel'], $file);
} elseif (is_uploaded_file($tmp)) {
return copy($tmp, $file);
}
return false;
}
Охуенная переносимость кода ))
0
То, что находится ниже - очередная розовобегемотная вакансия, предложенная "креативщиками" от IT-индустрии.
Интересно, когда они осознают, что к ним идут зарабатывать земное, бренное бабло, а не "сворачивать горы", и что на их прожекты всем, кроме них самих, глубоко похуй?
"Сейчас – тот самый момент, когда в нашу КОМАНДУ МЕЧТЫ ищется Full-stack PHP-разработчик,
творческий человек и высококлассный профессионал.
Тебя ждет яркий проект, безлимитный драйв и атмосфера настоящего большого стартапа!
То, что мы делаем – используют миллионы,
почувствуй себя создателем новой технологии, творцом новой жизни.
Мы здесь чтобы сворачивать горы, будь с нами и ты не пожалеешь!
Обязанности: [радужное описание рутинной хуеты]"
−1
function get_rand_word () {
$list = explode(" ", file_get_contents('http://www.gnu.org/licenses/gpl-3.0.txt'));
$cwords = rand (2,5);
$string = '';
$r = 0;
while($r++<$cwords) {
$string .= preg_replace('~[^a-z]+~', '', strtolower($list[rand(0, (count($list)-1))]));
}
return $string;
}
Одним прекрасным утром поступила жалоба, что сервер ддосят. Канал на 100Mb был полностью забит входящим трафиком. Ддосили с www.gnu.org...
+4
// Consumer
$channel->run(
new GracefulHandler(
new LoggingHandler(
new AcknowledgingHandler(
new JsonDecodingHandler(
new ValidatingHandler(
new DbalReconnectingHandler(
new AmqpPublishingHandler(
new Mailman($channel, $exchangeName),
new PrintNodePrinterPool(
new PluginClient(
new HttpClient(),
[new AuthenticationPlugin(new BasicAuth($key, ''))]
),
MessageFactoryDiscovery::find()
),
new DbalBatchFactory(
$connection,
new S3BatchLabelFactory(
new S3Client(
[
'version' => 'latest',
'region' => $region,
'credentials' => [
'key' => $key,
'secret' => $secret,
],
]
),
$bucket,
$logger
),
new LabelFactory(
new GuzzleClient(),
new PickTicketFactory($template, $layouts)
)
)
),
$connection
),
__DIR__ . '/schema.json'
)
)
),
$logger
)
),
$name
);
Пример consumer на PHP для RabbitMQ (Yegor OOP style)
0
public function notLessThan($attribute_name, $params)
{
$attributes = [
[
'error' => 0,
'name' => 'ingredient_1st',
'this' => $this->ingredient_1st
],
[
'error' => 0,
'name' => 'ingredient_2nd',
'this' => $this->ingredient_2nd,
],
[
'error' => 0,
'name' => 'ingredient_3rd',
'this' => $this->ingredient_3rd
],
[
'error' => 0,
'name' => 'ingredient_4th',
'this' => $this->ingredient_4th
],
[
'error' => 0,
'name' => 'ingredient_5th',
'this' => $this->ingredient_5th
],
];
$this->counter = 0;
foreach ($attributes as $key => &$attribute) { // change array element
if (empty($attribute['this']) && $this->counter < 2) {
$attribute['error'] = 1;
} else {
$this->counter++;
}
}
if ($this->counter < 2) {
foreach ($attributes as $key => $attribute) {
if ($attribute['error']) {
$this->addError($attribute['name'], 'Должно быть заполнено не менее двух полей.');
}
}
return false;
}
return true;
}
Валидатор проверки заполнения нужного количества полей
+1
if (!empty($tickets)) {
if (count($tickets)) {
$c_start = strtotime($convetion_details['start']);
$c_end = strtotime($convetion_details['end']);
$i = 0;
while ($c_start <= $c_end) {
if (is_int($i / 4) && $i > 0) $convetion_days_html .= '</tr><tr>';
$convetion_days_html .= '<td>' . date('d.m', $c_start) . ' ' . __t($days_of_week[date('w', $c_start)]) . ' <img src="' . str_replace('https', 'http', TEMPLATE_WWWPATH) . '/images/checkbox.png"/></td>';
$c_start = strtotime('+1 day', $c_start);
$i++;
}
//...
код из легаси 2007 года от индусов
+2
/**
* "Smart" Escape String
*
* Escapes data based on type
* Sets boolean and null types
*/
function escape($str)
{
if (is_string($str))
{
$str = "'".$this->escape_str($str)."'";
}
elseif (is_bool($str))
{
$str = ($str === FALSE) ? 0 : 1;
}
elseif (is_null($str))
{
$str = 'NULL';
}
return $str;
}
CodeIgniter 2, "Smart"