- 1
setcookie('password', $passHash , time() + $this::TIME_COOKIE * 1000 + $remember ? $this::TIME_COOKIE_REMEMBER : 0 * 1000 );
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+157
setcookie('password', $passHash , time() + $this::TIME_COOKIE * 1000 + $remember ? $this::TIME_COOKIE_REMEMBER : 0 * 1000 );
И я то думал, почему кука не появляется...
+149
function rawToStructuredDataTree($data) {
$structured_array = array();
foreach ($data as $cid => $node) {
$data[$cid]['children'] = array();
if ($node['parent_id'] == $cid || $node['parent_id'] == 0) {
$structured_array[$cid] = &$data[$cid];
} else {
$data[$node['parent_id']]['children'][$cid] = & $data[$cid];
}
}
return $structured_array;
}
Вот такое выдал мой ученик (школьник, 8 класс), когда его попросили из массива id - parent_id построить дерево.
+155
/**
* Handles Registration Links.
*
* @package s2Member\Registrations
* @since 3.5
*
* @attaches-to ``add_action("init");``
*
* @return null Or exits script execution after redirection.
*/
public static function register ()
{
do_action ("ws_plugin__s2member_before_register", get_defined_vars ());
if (!empty ($_GET["s2member_register"])) // If they're attempting to access the registration system.
{
while (@ob_end_clean ()); // Clean any existing output buffers.
$msg_503 = _x ('<strong>Your Link Expired:</strong><br />Please contact Support if you need assistance.', "s2member-front", "s2member");
if (is_array ($register = preg_split ("/\:\.\:\|\:\.\:/", c_ws_plugin__s2member_utils_encryption::decrypt (trim (stripslashes ((string)$_GET["s2member_register"]))))))
{
if (count ($register) === 6 && $register[0] === "subscr_gateway_subscr_id_custom_item_number_time" /* Does the checksum value match up here? */)
{
if (is_numeric ($register[5]) && $register[5] <= strtotime ("now") && $register[5] >= strtotime ("-" . apply_filters ("ws_plugin__s2member_register_link_exp_time", "2 days", get_defined_vars ())))
{
$_COOKIE["s2member_subscr_gateway"] = /* For ``reg_cookies_ok ()``. */ c_ws_plugin__s2member_utils_encryption::encrypt ($register[1]);
$_COOKIE["s2member_subscr_id"] = /* For ``reg_cookies_ok ()``. */ c_ws_plugin__s2member_utils_encryption::encrypt ($register[2]);
$_COOKIE["s2member_custom"] = /* For ``reg_cookies_ok ()``. */ c_ws_plugin__s2member_utils_encryption::encrypt ($register[3]);
$_COOKIE["s2member_item_number"] = /* For ``reg_cookies_ok ()``. */ c_ws_plugin__s2member_utils_encryption::encrypt ($register[4]);
if (($reg_cookies = c_ws_plugin__s2member_register_access::reg_cookies_ok ()) && extract ($reg_cookies) /* Needed? */)
{
status_header(200); // Send a 200 OK status header.
header("Content-Type: text/html; charset=UTF-8"); // Content-Type with UTF-8.
setcookie ("s2member_subscr_gateway", $_COOKIE["s2member_subscr_gateway"], time () + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie ("s2member_subscr_gateway", $_COOKIE["s2member_subscr_gateway"], time () + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN);
setcookie ("s2member_subscr_id", $_COOKIE["s2member_subscr_id"], time () + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie ("s2member_subscr_id", $_COOKIE["s2member_subscr_id"], time () + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN);
setcookie ("s2member_custom", $_COOKIE["s2member_custom"], time () + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie ("s2member_custom", $_COOKIE["s2member_custom"], time () + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN);
setcookie ("s2member_item_number", $_COOKIE["s2member_item_number"], time () + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie ("s2member_item_number", $_COOKIE["s2member_item_number"], time () + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN);
do_action ("ws_plugin__s2member_during_register", get_defined_vars ());
if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site () && ($location = c_ws_plugin__s2member_utils_urls::wp_signup_url ()))
{
echo '<script type="text/javascript">' . "\n";
echo "window.location = '" . c_ws_plugin__s2member_utils_strings::esc_js_sq ($location) . "';";
echo '</script>' . "\n";
}
else if (($location = c_ws_plugin__s2member_utils_urls::wp_register_url ()))
{
echo '<script type="text/javascript">' . "\n";
echo "window.location = '" . c_ws_plugin__s2member_utils_strings::esc_js_sq ($location) . "';";
echo '</script>' . "\n";
}
exit (); // Clean exit. The browser will now be redirected to ``$location``.
}
else
status_header(503) . header ("Content-Type: text/html; charset=UTF-8") . exit ($msg_503);
}
else
status_header(503) . header ("Content-Type: text/html; charset=UTF-8") . exit ($msg_503);
}
else
status_header(503) . header ("Content-Type: text/html; charset=UTF-8") . exit ($msg_503);
}
else
status_header(503) . header ("Content-Type: text/html; charset=UTF-8") . exit ($msg_503);
}
do_action ("ws_plugin__s2member_after_register", get_defined_vars ());
}
Концовка особенно захватывающа.
Плагин для Wordpress - s2member, https://www.s2member.com/codex/stable/source/s2member/includes/classes/register-in.inc.php
+152
function locate($info) {
$name = sprintf("%s_%02d_%02d.jpg", $info['prefix'], $info['vol'], $info['page']);
if (file_exists($name))
return $name;
$name = sprintf("%s_%02d_%03d.jpg", $info['prefix'], $info['vol'], $info['page']);
if (file_exists($name))
return $name;
$name = sprintf("%s%d_%03d.jpg", $info['prefix'], $info['vol'], $info['page']);
if (file_exists($name))
return $name;
$name = sprintf("%s%d_%03d-%03d.jpg", $info['prefix'], $info['vol'], $info['page'], $info['page']+1);
if (file_exists($name))
return $name;
$name = sprintf("%s%d_%03dcover.jpg", $info['prefix'], $info['vol'], $info['page']);
if (file_exists($name))
return $name;
return false;
}
Онлайн читалка манги. Эта функция ищет картинку по номеру тома/страницы.
Как считаете, я сильно наговнокодила? ^_^
+162
<?php
/**
* Project: Smarty: the PHP compiling template engine
* File: Smarty.class.php
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* For questions, help, comments, discussion, etc., please join the
* Smarty mailing list. Send a blank e-mail to
* [email protected]
*
* @link http://www.smarty.net/
* @copyright 2001-2005 New Digital Group, Inc.
* @author Monte Ohrt <monte at ohrt dot com>
* @author Andrei Zmievski <[email protected]>
* @package Smarty
* @version 2.6.26
*/
/* $Id: Smarty.class.php 3163 2009-06-17 14:39:24Z monte.ohrt $ */
/**
* DIR_SEP isn't used anymore, but third party apps might
*/
echo ".";
?>
+154
function unpackLoginAndPas($signed,$iv, $dateSend){
global $crypt, $cryptLast, $defaultDate, $ivsId, $mysqlBaseName, $mysqlBase;
//получаем текущую дату.
if (isset($dateSend) )
$date = $dateSend;
else
$date = $defaultDate;
$query = "SELECT id FROM ivs WHERE val='$iv';" ;
$query = $mysqlBase->query($query);// or die (compactResult('error','криворукий программист!'));
//есть ли такой маркер безопасности?
if ($query->num_rows)//раз есть, то надо послать за другим маркером. Такой уже не годиться.
die (compactResult('error','bad iv marker,pls generate new iv'));
//запоминаем такой маркер безопасности, и больше под ним не пускаем.
//получаем id автоинкремент
$myBase = $mysqlBase->query("SHOW TABLE STATUS FROM $mysqlBaseName") or die (compactResult('error','SystemTable not get (')); ;
$result = false;
//поиск времени изменения БД.
$dateSrv = (int)( $date->getTimestamp() / 1000 );
while($row = $myBase->fetch_assoc()){
if ($row['Name'] !== "ivs" )
continue;
$ivsId = $row["Auto_increment"];
}
$userIP = getUserIpAddr();
$mysqlBase->query("INSERT INTO ivs(val,IP) VALUES('$iv','$userIP')") or die(compactResult('error','криворукий программист!'));
//составляем строку из даты, которая у нас будет ключем. 1 раз в 5 минут она становиться другой.
$decodeKey = /*формирование строки от даты*/
$dateLast = $date->add( DateInterval::createFromDateString(' 5 minuts ' ) );
$decodeKeyLast = /*формирование строки от даты*/
//var_dump($decodeKey);
$decodeKey = md5($decodeKey);
$decodeKeyLast = md5 ( $decodeKeyLast );
mcrypt_generic_init ($crypt,$decodeKey,$iv);
mcrypt_generic_init ($cryptLast,$decodeKeyLast,$iv);
//декриптуем
$encDataLoginAndPass = rtrim (mdecrypt_generic($crypt,$signed));
$encDataLoginAndPassLast = rtrim (mdecrypt_generic($cryptLast,$signed));
//если правильный был и ключ(время не истекло) и
//var_dump($encDataLoginAndPass);
$encDataLoginAndPass = json_decode ($encDataLoginAndPass,true) or ( ($decodeKey = $decodeKeyLast ) and json_decode ($encDataLoginAndPassLast,true) )or die(compactResult('error','Key time out.'));
//в поле secdata в POST будет лежать массив, декодированный
mcrypt_generic_init ($crypt,$decodeKey,$iv);
$temp = array_keys($encDataLoginAndPass);
$encData = array('login'=>$temp[0], 'password'=>end($encDataLoginAndPass));
$encPost = mdecrypt_generic($crypt, base64_decode( $_POST['secdata'] ) );
$encData['post'] = json_decode (rtrim($encPost)) or die(compactResult('error','post uncompressed!'));
//деинит
mcrypt_generic_deinit ($crypt);
//раз все прошло успешо, возвращаем массив с логином и паролем, который проверяем дальше. Тут даже использование вместо пароля, его хеша не поможет от хака. будем надеятся на алгоритм шифровки. Хотя есть взять, и знать что тут будет одинаковая информация, то вычислить её по паре перехваченных обращений не составит труда. Надо бы переделать на хеш от логина с паролем. Хотя и это врядли поможет. Надо взять что-то изменяемое. От чего можно будет отталкиваться. Но это надо обдумывать.
return $encData;
};
попытка шифрования в 1-м проекте.
Человек первый раз писал на php. Оно и видно...
+153
if($vOk)
{
if($vOk)
{
...
}
}
Дополнительная проверка не повредит.
+156
$html = file_get_contents('http://2ip.ru/');
preg_match_all('#<big id=\"d_clip_button\">(.*?)</big>#', $html, $ip);
$ip2 = $ip[1][0];
if($pass == $pass2)
{$data = file_get_contents("http://$server$domain/$catalog/$files$format?login=$login&pass=$pass&email=$email&name=$name&famil=$famil&skype=$skype&ip=$ip2");
MessageBox("$data", "Ответ с сервера");
}else{
messageDlg("Пароли не совпадают!", mtWarning, MB_OK);}
Вот такая незамысловатая регистрация на сервере. GET запросом с использованием file_get_contents. Ну и конечно же серверу надо обязательно отправить свой ip.
+157
switch ($vs_TmpStr)
{
case "230";
$vb_isCompl = true;
break;
case "11619";
$vb_isCalcul = true;
break;
case "11660";
$vb_isSevice = true;
break;
case "11668";
$vb_isCalcul = true;
break;
case "11670";
$vb_isCalcul = true;
break;
case "11669";
$vb_isCalcul = true;
break;
case "11678";
$vb_isSevice = true;
break;
case "11679";
$vb_isSevice = true;
break;
case "11681";
$vb_isSevice = true;
break;
...
}
125-ти строчный switch.
+157
$vs_SourceStr = RETURNCHAR."9003".TABCHAR."0xf8f9fb".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."8014".TABCHAR."0x49372a".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."5005".TABCHAR."0x004389".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."6005".TABCHAR."0x0e4438".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."3005".TABCHAR."0x581e29".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."9006".TABCHAR."0x6d312b".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."1000".TABCHAR."0xccc188".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."7004".TABCHAR."0x999a9f";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."9003";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."9003".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."8014";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."9003".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."8014".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."5005".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."6005".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."3005".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."9006".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."1000".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."7004";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."9003".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."8014".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."5005".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."6005".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."3005".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."9006".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."1000".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."7004";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."1".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."1".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."1".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."2".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."1".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."3".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."1".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."3".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."2".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."0";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."500".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."350".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."280".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."500".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."4165".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."-1".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."-1".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."-1".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."4165".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."4165";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."350".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."230".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."150".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."350".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."500".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."?500".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."1480".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."?200".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."500".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."850";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."120".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."120".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."120".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."120".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."120".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."120".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."500".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."500".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."120".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."500";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
$vs_SourceStr = $vs_SourceStr."".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."11668".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."14634".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."11991".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."11670".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."11669".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."101878".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."101879".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."107384".RETURNCHAR;
$vs_SourceStr = $vs_SourceStr."000000";
$vs_SourceStr = $vs_SourceStr."<#>EndTOPIC<#>";
No comments.