- 1
- 2
- 3
#!/bin/sh
[ ${SHELL} = "/bin/bash" ] || exit "Bash required!"
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
#!/bin/sh
[ ${SHELL} = "/bin/bash" ] || exit "Bash required!"
+1
$ss_n = 0;
$ss_nf = 0;
$ss_f = 0;
$ss_n_pl = 0;
$ss_nf_pl = 0;
$ss_f_pl = 0;
$ids_count = count($ids);
for ($i=0;$i < $ids_count;$i++) {
$key = $w_dates[$z]."|1|".$ids[$i];
$ss_n += $w_n_s[$key]*1;
$ss_nf += $w_nf_s[$key]*1;
$ss_f += $w_f_s[$key]*1;
$key = $w_dates[$z]."|2|".$ids[$i];
$ss_n += $w_n_s[$key]*1;
$ss_nf += $w_nf_s[$key]*1;
$ss_f += $w_f_s[$key]*1;
$key = $w_dates[$z]."|3|".$ids[$i];
$ss_n += $w_n_s[$key]*1;
$ss_nf += $w_nf_s[$key]*1;
$ss_f += $w_f_s[$key]*1;
}
$ids_count = count($ids);
for ($i=0;$i < $ids_count;$i++) {
$key = $w_dates[$z]."|1|".$ids[$i];
$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
$key = $w_dates[$z]."|2|".$ids[$i];
$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
$key = $w_dates[$z]."|3|".$ids[$i];
$ss_n_pl = $ss_n_pl + $w_n_s_pl[$key]*1;
$ss_nf_pl = $ss_nf_pl + $w_nf_s_pl[$key]*1;
$ss_f_pl = $ss_f_pl + $w_f_s_pl[$key]*1;
}
echo "<td class='Field' rowspan='3' style='vertical-align: middle;'><b>".OutNF($ss_n,$ss_nf,$ss_f)."</b></td>\n";
echo "<td class='Field' rowspan='3' style='vertical-align: middle;'><b style='color:#aa0000;'>".OutNF($ss_n_pl,$ss_nf_pl,$ss_f_pl)."</b></td>\n";
echo "</tr><tr>";
////////////////////////////////////////////////////////////
echo "<td class='Field' width='40' style='vertical-align: middle;'><b>II</b></td>\n";
$s_n = 0;
$s_nf = 0;
$s_f = 0;
$s_n_pl = 0;
$s_nf_pl = 0;
$s_f_pl = 0;
for ($i=0;$i < count($ids);$i++) {
$key = $w_dates[$z]."|2|".$ids[$i];
$s_n = $s_n + $w_n_s[$key]*1;
$s_nf = $s_nf + $w_nf_s[$key]*1;
$s_f = $s_f + $w_f_s[$key]*1;
$s_n_pl = $s_n_pl + $w_n_s_pl[$key]*1;
$s_nf_pl = $s_nf_pl + $w_nf_s_pl[$key]*1;
$s_f_pl = $s_f_pl + $w_f_s_pl[$key]*1;
if ($edti_stat[$key]==1){
echo "<td class='Field'>".OutNF($w_n_s[$key],$w_nf_s[$key],$w_f_s[$key])."</td>\n";
}
if ($edti_stat[$key]==0){
$link_dat = explode("|", $key);
$link_dat2 = $link_dat[0];
$link_dat3 = $link_dat[1];
echo "<td class='Field'><a target='_bland' href='index.php?do=show&formid=64&p0=".$link_dat2."&p1=".$link_dat3."'><b style='color:#aa0000;'>".OutNF($w_n_s_pl[$key],$w_nf_s_pl[$key],$w_f_s_pl[$key])."</b></a></td>\n";
}
}
echo "<td class='Field'></td>\n";
echo "<td class='Field'><b>".OutNF($s_n,$s_nf,$s_f)."</b></td>\n";
echo "<td class='Field'></td>\n";
echo "<td class='Field'></td>\n";
echo "<td class='Field'><b style='color:#aa0000;'>".OutNF($s_n_pl,$s_nf_pl,$s_f_pl)."</b></td>\n";
echo "<td class='Field'></td>\n";
////////////////////////////////////////////////////////////
+1
https://hr.cetera.ru/tests-developers/
Какой мяуздец )))
Внимание, кандидаты в стажёры!
Тестовое задание (поле анкеты «Ссылку на выполненное тестовое задание (ТОЛЬКО ДЛЯ СТАЖЁРОВ).») требуется выполнять сразу. Анкеты без тестового задания не рассматриваем, отказываем сразу. Этот тест — первое, на что смотрит проверяющий анкеты. Если поле пустое или там написано что-то вроде «сделаю потом» — «потом» не будет.
+1
ЗапросБезСЛ = Новый Запрос;
ЗапросБезСЛ.Текст = "ВЫБРАТЬ
| КарточкаСделкиТовары.Ссылка.Ссылка КАК СсылкаКС
|ИЗ
| Документ.КарточкаСделки.Товары КАК КарточкаСделкиТовары
|ГДЕ
| КарточкаСделкиТовары.Ссылка.Завершена = ЛОЖЬ
| И КарточкаСделкиТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
| И (КарточкаСделкиТовары.СтатусСтроки = &СтатусСтрокиПлан
| ИЛИ КарточкаСделкиТовары.СтатусСтроки = &СтатусСтрокиПланХочуВЗаказано
| ИЛИ КарточкаСделкиТовары.Ссылка.Клиент = &Электросистем
| И КарточкаСделкиТовары.СтатусСтроки <> &СтатусСтрокиЗавершено)
| И КарточкаСделкиТовары.КонтрактнаяДата < НАЧАЛОПЕРИОДА(&ТекДата, ДЕНЬ)
| И КарточкаСделкиТовары.Ссылка.Подразделение В ИЕРАРХИИ(&ДРП)
| И КарточкаСделкиТовары.Ссылка.ДляПланаПроизводства = ЛОЖЬ
| И КарточкаСделкиТовары.Ссылка.Дата > &ПрошлыйГод
| И КарточкаСделкиТовары.Ссылка.Статус <> ЗНАЧЕНИЕ(Справочник.СтатусыКарточекСделки.Завершена)
//| И КарточкаСделкиТовары.Ссылка.Номер = ""180010002""
|
|СГРУППИРОВАТЬ ПО
| КарточкаСделкиТовары.Ссылка.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| КарточкаСделкиТовары.Ссылка.Дата УБЫВ";
ЗапросБезСЛ.УстановитьПараметр("СтатусСтрокиПлан", Справочники.СтатусыСтрокКарточкиСделки.Запланировано);
ЗапросБезСЛ.УстановитьПараметр("СтатусСтрокиПланХочуВЗаказано", Справочники.СтатусыСтрокКарточкиСделки.Заказано);
ЗапросБезСЛ.УстановитьПараметр("ТекДата", ТекущаяДата());
ЗапросБезСЛ.УстановитьПараметр("ДРП",Справочники.ФункциональныеОтделыПродаж.НайтиПоКоду("d16"));
ЗапросБезСЛ.УстановитьПараметр("Электросистем", Справочники.Контрагенты.НайтиПоКоду("140755"));
ЗапросБезСЛ.УстановитьПараметр("СтатусСтрокиЗавершено", Справочники.СтатусыСтрокКарточкиСделки.Завершено);
ЗапросБезСЛ.УстановитьПараметр("ПрошлыйГод", НачалоГода(НачалоГода(ТекущаяДата())-3 * 86400));
Выборка = ЗапросБезСЛ.Выполнить().Выбрать();
сПользователь = Справочники.Пользователи.НайтиПоКоду("17 644").Руководитель;
НоваяКонтрДата = ОбщиеПроцедурыИФункции.ОпределитьДатуЗавершения(сПользователь, ТекущаяДата(), 3600*8*1);
Пока Выборка.Следующий() Цикл
КС = Выборка.СсылкаКС.ПолучитьОбъект();
НеобходимоЗаписать = Ложь;
Если ЗначениеЗаполнено(Выборка.СсылкаКС.КодSL) Тогда
Для каждого Изделие из КС.Товары Цикл
СтатусСтроки = ПолучитьСтатусСтрокиВSL(Выборка.СсылкаКС.КодSL,Изделие.НомерСтроки,Выборка.СсылкаКС.Склад);
Если СтатусСтроки <> Неопределено И СтатусСтроки <> "F" //выполн.
и СтатусСтроки <> "C" //завершено
Тогда
Если Изделие.КонтрактнаяДата < НачалоДня(ТекущаяДата()) Тогда
Если (Изделие.СтатусСтроки = Справочники.СтатусыСтрокКарточкиСделки.Запланировано
или Изделие.СтатусСтроки = Справочники.СтатусыСтрокКарточкиСделки.Заказано) ИЛИ (Изделие.СтатусСтроки <> Справочники.СтатусыСтрокКарточкиСделки.Завершено И Выборка.СсылкаКС.Клиент = Справочники.Контрагенты.НайтиПоКоду("140755")) Тогда
Изделие.КонтрактнаяДата = НоваяКонтрДата;
НеобходимоЗаписать = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если НеобходимоЗаписать Тогда
КС.Записать();
Документы.КарточкаСделки.ОбновитьПараметрыКарточкиСделкиВSL(КС);
rs = Неопределено;
КонецЕсли;
Иначе
Для каждого Изделие из КС.Товары Цикл
Если Изделие.КонтрактнаяДата < НачалоДня(ТекущаяДата()) Тогда
Если (Изделие.СтатусСтроки = Справочники.СтатусыСтрокКарточкиСделки.Запланировано
или Изделие.СтатусСтроки = Справочники.СтатусыСтрокКарточкиСделки.Заказано) ИЛИ (Изделие.СтатусСтроки <> Справочники.СтатусыСтрокКарточкиСделки.Завершено И Выборка.СсылкаКС.Клиент = Справочники.Контрагенты.НайтиПоКоду("140755")) Тогда
Изделие.КонтрактнаяДата = НоваяКонтрДата;
НеобходимоЗаписать = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если НеобходимоЗаписать Тогда
КС.Записать();
rs = Неопределено;
КонецЕсли;
КонецЕсли;
КонецЦикла;
+1
public class Spot {
private Piece piece;
private int x;
private int y;
public Spot(int x, int y, Piece piece)
{
this.setPiece(piece);
this.setX(x);
this.setY(y);
}
public Piece getPiece() // метод возвращает объект фигуру
{
return this.piece;
}
public void setPiece(Piece p)
{
this.piece = p;
}
public int getX()
{
return this.x;
}
public void setX(int x)
{
this.x = x;
}
public int getY()
{
return this.y;
}
public void setY(int y)
{
this.y = y;
}
}
Дизайн шахматной игры
Эти виды вопросов задаются на интервью, чтобы судить о навыке объектно ориентированного дизайна кандидата. Итак, прежде всего, мы должны подумать о классах.
https://habr.com/ru/post/660003/
+1
Ёбаный openconnect
openconnect -- это свободная реализация протоколоа CISCO AnyConnect VPN.
В первом комменте опишу проблему.
+1
math.Min(float64, float64) float64
math.Max(float64, float64) float64
В goвне нету math.Min для integer. Даже в анскильном "Си" это есть.
https://www.pixelstech.net/article/1559993656-Why-no-max-min-function-for-integer-in-GoLang
+1
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(10000)
public class BinderControllerAdvice {
@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {
String[] denylist = new String[]{"class.", "Class.", ".class.", ".Class."};
dataBinder.setDisallowedFields(denylist);
}
}
Критическая 0-day уязвимость в Spring Framework, применяемом во многих Java-проектах
Работа эксплоита сводится к отправке запроса с параметрами "class.module.classLoader.resources.cont ext.parent.pipeline.first.*", обработка которых при использовании "WebappClassLoaderBase" приводит к обращению к классу AccessLogValve. Указанный класс позволяет настроить логгер для создания произвольного jsp-файла в корневом окружении Apache Tomcat и записи в этот файл указанного атакующим кода. Созданный файл становится доступным для прямых запросов и может использоваться в качестве web shell. Для атаки на уязвимое приложение в окружении Apache Tomcat достаточно отправить запрос с определёнными параметрами при помощи утилиты curl.
curl -v -d "class.module.classLoader.resources.context.parent.pipeline
.first.pattern=код_для_вставки_в_файл
&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar
&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat="
http://localhost:8080/springmvc5-helloworld-exmaple-0.0.1-SNAPSHOT/rapid7
+1
Из-за вашей политоты Борманд ушёл.
+1
<?php defined('SYSPATH') or die('No direct script access.');
/*
* Базовый класс главной страницы
*/
class Controller_Index extends Controller {
public function before() {
parent::before();
I18n::lang('ru');
$settings = Kohana::config('settings');
Cookie::$salt = 'asd12d2';
Session::$default = 'cookie';
$this->session = Session::instance();
}
public function action_index() {
//Путь до файла первоночального xml (xsl)
$path_xml='tpl/xml.xsl';
//Путь конечного xsl
$path_xsl='tpl/index.xsl';
$url = $this->request->param('stuff');
//print_r($_SERVER);
/*if($_SERVER ['REQUEST_URI']=='/'){
$this->request->redirect($_SERVER ['HTTP_X_FORWARDED_PROTO'].'://'.$_SERVER['HTTP_HOST'],'301');
}*/
if(empty($url)){
$url='/';
}
$htmlfile='cache-html/'.md5($url);
$allurl=$_SERVER ['REQUEST_URI'];
if($allurl=='/20-40-kvm') $this->request->redirect('/sadovye-domiki','301');
if($allurl=='/40-80-kvm') $this->request->redirect('/sadovye-domiki','301');
if($allurl=='/80-i-bolee-kvm') $this->request->redirect('/sadovye-domiki','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=0&destination%5B%5D=1&destination%5B%5D=2&technology%5B%5D=0&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=0-3000000&area=0-400') $this->request->redirect('/sadovye-domiki','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=1&technology%5B%5D=0&technology%5B%5D=1&technology%5B%5D=2&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=0-3000000&area=81-400') $this->request->redirect('/80-i-bolee-kvm','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=1&technology%5B%5D=0&technology%5B%5D=1&technology%5B%5D=2&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=0-3000000&area=40-80') $this->request->redirect('/40-80-kvm','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=0&technology%5B%5D=0&technology%5B%5D=1&technology%5B%5D=2&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=0-3000000&area=0-400') $this->request->redirect('/stroitelstvo-dachnyh-domov','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=2&technology%5B%5D=0&technology%5B%5D=1&technology%5B%5D=2&technology%5B%5D=3&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=0-3000000&area=0-400') $this->request->redirect('/kottedzhi','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=3&technology%5B%5D=0&technology%5B%5D=2&technology%5B%5D=3&floors%5B%5D=1&floors%5B%5D=1.5&price=0-3000000&area=0-400') $this->request->redirect('/bani','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=3&technology%5B%5D=2&floors%5B%5D=1&floors%5B%5D=1.5&price=0-3000000&area=0-400') $this->request->redirect('/bani-iz-profilirovannogo-brusa','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=3&technology%5B%5D=0&floors%5B%5D=1&floors%5B%5D=1.5&price=0-3000000&area=0-400') $this->request->redirect('/karkasnye-bani','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=3&technology%5B%5D=3&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=0-3000000&area=0-400') $this->request->redirect('/bani-iz-ocilindrovannogo-brevna','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=0&destination%5B%5D=1&destination%5B%5D=2&technology%5B%5D=2&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=316018-3000000&area=0-400') $this->request->redirect('/brus','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=0&destination%5B%5D=1&destination%5B%5D=2&technology%5B%5D=2&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=0-3000000&area=0-400') $this->request->redirect('/kottedzhi-profilirovannyj-brus','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=0&destination%5B%5D=1&destination%5B%5D=2&technology%5B%5D=0&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=329056-3000000&area=0-400') $this->request->redirect('/dachnye-doma-karkasnaya-tehnologiya','301');
if($allurl=='/nashi-proecty?searcher=48291§ion=3924&destination%5B%5D=0&destination%5B%5D=1&destination%5B%5D=2&technology%5B%5D=1&floors%5B%5D=1&floors%5B%5D=1.5&floors%5B%5D=2&price=0-3000000&area=0-400') $this->request->redirect('/individualnye-proekty','301');
Там ещё дальше веселье продолжается, но гк не дает запостить больше