<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Как синтаксис подсветить?
Самим за код стрёмно, вот и прячут его за паролем.
(2) А что срамиться, написал криво умные люди подскажут, в следующий раз лучше напишешь, а то так и будешь всю жизнь как попало писать 🙂
В 1С очень уж много возможностей в платформе. Для учетной программы — т.е. в каком качестве ее в основном покупают.
Щас те, кто раньше об этом и не знал, начнут вставлять этот код в обработки :),
а вообще если установлен нормальный фаервол, то он предупредит о том, что 1с стучится в инет, а антивир заблокирует вирусню.
(5) Но у мнегих даже антивируса нет, вот в чем проблема.
хм, обработку с примерами видимо удалили админы… ну да ладно…
Вот люди зачем подсказывать идеи вредителям и так мало стоящих разработок.
Да. Один напишет … другие с гордостью применят —
А представляете, что можно во внешние компоненты запихать!!
Так Василий, ты меня пугаешь, у меня твоих компонент в разработках, что грязи
(11) Поздно, я уже все знаю!
(9) А ты как хотел, либо работай с проверенными людьми либо код смотри. Если код не понимаешь, лучше вообще не пользоваться чужими разработками, в конце концов 1с не игрушка и потерять (испортить) из нее данные в связи с чьей-то некомпетентностью не есть good. И вообще, имхо, каждый уважающий себя программист следит за своей репутацией и она многого стоит, так как кормит его. А если ты скачал где-то непонятную обработку, и воспользовался ей, это на твой страх и риск.
(12) Коварный ты тип, суров ты на расправу )))
(10) А в экзюк еще проще 😉
(15) А в активикс еще проще! Только ее на форму бросил — сразу админские пароли ушли. 1С-ку запустил — информация о контрагентах и прочим ушла.
Ну и всякие бэкдоры активировались.
(16) Я уж, честно говоря, и не знаю куда мне все эти пароли с контрагентами девать! Развелось видимо-невидимо, вот и шлю щас кому попало 😉
(17) А я на диски записываю. На горбушке и савеле мои сборники продаются.
Вот, что выясняется, все тут с грешком. 🙂
Почему с грешком? Это просто очередной способ заработка.
Владельца порталов базы пользователей продают для спамеров — тоже хорошо.
(0) А во втором примере вместо «ЗапуститьПриложение(КудаСохраняем);»
Я бы посоветовал использовать Script.Shell для того, чтобы не выскакивало левых окон.
(21) Да бога ради это только пример 🙂
У меня например вообще не один вариант не проканает т.к. когда я эту статью выложил интернет себе отключил от греха по дальше. 🙂
Вы оч. странные, а анти вирусы начто нужны.
С нормальным аетивирусом никакая внеш. компонента и скрытый код не помогут.
Тема открыта на показуху для зивак.
(23) И как же антивирус поможет против от скачивания файла и его запуска?
(24) Нормальный антивирус тупо заблокирует всю деятельность ВК/обработки. Когда-то давно тестировал фаерволл ZoneAlarm (не антивирус, правда), так он ни одному тестеру даже запуститься не дал. Сейчас стоит NortonAntivirus2008 + Comodo. Они на пару 1С даже за обновлениями еле пропускают:)
:))) Антивирусы ничего этого не блокируют.
Если 1С-ке разрешено лазить по 80 порту, то она спокойно скачает и запустит все.
Если разрешено, то она попытается скачать. А вот запустить — не получится. Блин, да так про любое приложение можно говорить. Типа, раз ie разрешено выходить в инет, то он все и запустить сможет. Разработчики антивирусов полные идиоты?
При чем тут антивирус и запуск приложения?
OLE-соединения тоже блокируются «антивирусом»?
Вообщем разговор слепого с глухим 🙂
(30) Так ответить проще всего. Все соединения проверяются антивирусом. И все запуски приложений тем более. Если он нормальный. Хотя, действительно, разговор пустой.
Да, я сдался. Мне уже возразить нечего.
Нормальный антивирус заблокирует 1С-ку.
Советую на чистую ОС установить каспера последнего, и посмотреть — как это происходит:) Все, спокойной ночи, до завтра:)
(28) 1. Ты не прав, антивирь не даст запуститься приложению, которое содержит вирус, и неважно, откуда и как его запускаем.
2. Вот закачка файлов и доступ к почте, сайтам и т.д уже другое дело.
Большинство антивирусов не слишком блокируют эти возможности, потому что это не их основная задача, а задача файерволлов и т.д.
ИМХО по опыту на большинстве машин стоят обычные антивири с минимальной блокировкой интернет-трафика. Поэтому вариант 1 и ему подобные с отправкой важной инфы по почте может пройти наверняка.
А вариант 2 практически не жизнеспособен 🙂
Что ты прикопались к этим вирусам, я думаю что дороже потерять справочник контрагенты с контактами чем комп вирусом заразить. Тем более, как я уже говорил выше, не у всех стоят антивирусы и фаерволы, по себе людей не судят. Я видел очень много компов без антивирусов и фаерволов но с 1С. Многим жалко 1000 рублей на антивирус, а ломаный поставить ума не хватает.
(34) Вирус это как вариант, можно и другой вредоносный код, который антивирус не распознает.
>ИМХО по опыту на большинстве машин стоят обычные антивири с минимальной >блокировкой интернет-трафика
Вот это я и пытаюсь до все донести.+
(34) Фильм «Антикиллер»
— Он же не чувствует боли.
— У меня почувствует!
В НАШЕЙ сетке никогда ничего не запустится, не полезет по портам и т.д.
Политика фашизма применима полностью :))))
Ну, ребят. С таким же успехом можно и блокнот обвинить в опасности. Я вот скрипты в блокнотике редактирую 🙂
Бред. Люди закрывают модули ради выгоды. Или как сказал bestuzhev чтоб не срамится.
А использовать для таких целей каверзных 1С, конечно можно, но почти не имеет смысла.
1. Если кто-то узнает, то это полный провал в карьере.
2. А если используешь чужое, то скорее всего из интернета. А кому может понадобится список контрагентов, к примеру моего маленького городка?
Бред.
Дарю от себя кусочек зловредного кода:
Показать полностью
Антивирусы и фаерволы не спасут… тока бэкап.
Зря вы тык эту фигню пишите найдутся горе умельцы от которых хто нить да пострадает.
Завтра 1С выпустят защиту от вредоностного кода :)))))
Прикольно наверно сидишь тут бамс выскакивает сообщение пользователь «Х» выполняет подозрительное действие через обработку «Ei.epf» блокировать?
(41) Вообще-то надо просто запретить выполнять обработки кому попало, а нужные подключить как внешние или на кройняк в конфу встроить.
Ребята, о чем вы говорите… народ не читает ридми даже… хотя в первых строках описания на странице разработки жирным шрифтом написано: СПЕЦИАЛЬНО ДЛЯ НЕКОТОРЫХ «ЛЕНТЯЕВ», КОТОРЫХ ЛОМАЕТ ЧИТАТЬ README.TXT — ПИШУ КРУПНЫМИ ЖИРНЫМИ БУКВАМИ В НАЧАЛЕ ОПИСАНИЯ: ЧИТАЙТЕ README.TXT C ПЕРВОЙ СТРОКИ до ПОСЛЕДНЕЙ — ТАМ ВСЕ НАПИСАНО…
(43) Дело говоришь. Вообще все люди лентяи, все хотят упростить свою жизнь. Как говориться Лень — двигатель прогресса.
Да, Сергей. А я даже как то и не думал об этом
Спасибо «+»
(9) Кто предупрежден тот вооружен!
(41) нормально!!!. вот и Ei не за что досталось 🙁
(42) да все можно, но это всегда работа и неудобства себе и другим.
(47) это пиар. Вспомнил самую «системную» обработку оказался EI. 🙂
Я примерно предполагал, что такое возможно.. Это еще фигня, вот если наименование номенклатуры похерить, итд…. Поэтому использование чужих запароленых разработок могут привести в такого рода неприятностям, понятно, что все это поправимо, но зачем лишняя головная боль.
Спокойствие спасёт не антивирус и файрвол!
Бэкап — ваше спасение! У меня бекапиться 2 раза в сутки, скриптами через планироващик заданий, автопилотом всех нагло выкидывает и архивирует базы. Все знают что во столько то будет архивация. Базы на Скуле. Так что проблемы все решаются в течении 5 минут (тьфу тьфу пока проносило мимо).
А антивири нужны для большего спокойствия от внеших атак зловредных программ. У меня 1С стоит в фильтрах антивируса и он её даже не сканирует как и 1С базы на SQL.
1) БЭКАП МОЖЕТ НЕ СПАСТИ! Если очень осторожно и потихоньку портить данные в базе (седня там одну циферку подправил, завтра там контрагента поменял, послезавтра задолженность с одного сотрудника на другого перевел и т.д.), то когда обнаружатся все эти факты и до бухгалтеров наконец дойдет что всё это неспроста, и обнаружат откуда ноги дойдут — то пройдет столько времени, что восстанавливать базу из бэкапа уже смысла не будет. Только вручную сравнивать все бэкапы с текущей базой и смотреть что, где, как, кем и когда поменялось — а это процесс сцуко очень долгий и геморный.
2) Кроме явных вредных инструкций в коде 1С можно засунуть хоть десяток вирусняков в сам ERT-файл и даже в MD-файл (я, к примеру, теперь умею всё это засовывать в картинку в диалоге формы с минусовыми координатами, так что ее не видно). В данном случае эффект может быть фатальным для базы, компа, сетки. Ну и вы сами знаете, что есть вирусы, которые не находит ни один антивирус; есть вирусы которые блокируют антивирусы, файрваллы и прочие.
3) Своровать данные можно и в обход файрвалла, даже если самой 1С доступ в инет запрещен. Достаточно просто перехватить создание/отправку любого письма, внедрив в него интересующие данные и подменив (добавив) адрес получателя.
ХМ, да в принципе то можно многое сделать 🙂 тут уж зависит от того сам ты это делать будеш или защищаться от кого 🙂
Если сам, то мне кажется неэтично, в УК разъянено на сколько, ну а степень защищенности прямо пропорциональна уровню знаний и умению быть «неэтичным».
Тут как в жизни 2 пути либо предохраняешся либо нет 🙂
(41) Документ «Расходная накладная» пытается создать записи по регистру «Партии товаров». Запретить? Разрешить? Игнорировать?
🙂
Кроме того, опасность может представлять почти каждый элемент диалога. К примеру, если формулу кнопки «Сформировать» (имеющей изначально формулу «Сформировать();») изменить на нижеприведенный код, то последствия будут фатальными:
Спр=СоздатьОбъект(«Справочник.Контрагенты»); Спр.ПорядокКодов(); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Спр.Наименование=»»; Спр.Записать(); КонецЦикла;
Тут единственное требование, чтобы в модуле была определена переменная «Спр». И анализ кода абсолютно не даст вам представления о том, что на самом деле делает обработка. Необходим также анализ всех элементов диалога. В общем, застраховаться ото всех возможных ситуаций практически невозможно. Единственно возможная защита — брать обновления и обработки только из надежных проверенных источников, например с дисков ИТС. 🙂
После скачивания какой нибудь обработки, я смотрю код (привычка), если закрыт, сразу удаляю — ну не надо мне такого. Потому что 90% обработок не подходят для казахстанских конфигураций. Спасибо за предупреждение, буду бдительнее. Но вот вопрос, как теперь это скажется на продаже через ИС программ и обработок, они то в основном все закрытые так или иначе, доверие пользователей то упадет?
А зачем что-то скачивать….
все приносится с собой в макете….
не просто а очень просто…. 🙁
Когда я с этим столкнулси… то был неприятно удивлен…
Зато теперь предупрежден, значит вооружен…. 🙂
Лично я при использовании закрытого кода смотрю еще на личность разработчика. Если он лично мне известен или известны его работы, и я вижу их профессиональность, я с намного большим доверием отношусь к его выложенной, но закрытой работе.
ЗЫ ну и расшифровку зашифрованных модулей 8 еще никто не отменял на самый крайний случай — честно говоря, мне еще ни разу не пригодилось.
(57) По себе знаю — профессионал не станет всякой фигней типов вирусов, удаления данных и т.д. заниматься 🙂
А тем более выкладывать в общий доступ подобные вещи — авторитет можно потерять навсегда.
(51) Заверните мне таких вирусов штук 10, пожалуйста:) И дайте пример кода подмены тела письма из 1С. Только, сначала сами этот код при работающем фаерволе проверьте:)
(59) artbear правильно сказал — то что я знаю и умею это делать, еще не значит что я буду это делать. Для меня авторитет и здоровье дороже. При скачивании чужой разработки я тоже в первую очередь смотрю кто автор — некоторым я доверяю больше чем себе. 🙂
(60) Зачемятельная отговорка:)
Мне чаще встречались писаки, которые амбициозно прятали свой код за паролем. Мол, обязательно же сопрут мой драгоценный код!.. А в разрезе — код этот полнейшая дрянь. А насчёт всяких фишек с воровством информации чрез нет — просто нужно запретить 1С-ке доступ в инет. Например устроить запуск программы от ограниченной политиками учётной записи. Я сам над этим не заморачивался. Чужие компоненты и активексы не использую, обработкам всегда сперва смотрю в кишки, а потом на морду. Да и на морду эту вообще-то редко смотрю 🙂
Ломать не строить душа не болит, а стеклянный х-й дуракам не на долго, пусть пишут пока пишется, но если вычислим куда уходит информация вот туда мы и наспамим этому горе шпиону… пущай пару миллионов писем с фуфлом разгребает…..
Короче надо сделать раздел нечистых обработок и их авторов и со времен этого хлама наберется как записей в базах антивирусных программ, а чуть позже 1С овцы напишут антивирус под 1С и будет нам счастье а им дополнительная прибыль…
И вообще сцуко стрелять надо таких лжепрограммистов, не на вижу разрушителей, нет бы написать путнее, а нет нате вам говно в салате… УРОДЫ КТО ПИШЕТ ПОДЛЫЙ КОД!!!! УЗНАЮ БУДУ СТРОГО СТРЕЛЯТЬ В ВИСОЧНУЮ ОБЛАСТЬ.
(65)> УЗНАЮ БУДУ СТРОГО СТРЕЛЯТЬ В ВИСОЧНУЮ ОБЛАСТЬ.
Эк разошелся :))) А есть из чего стрелять? 😉
Вообще было-бы полезно запостить фамилии и паспортные данные авторов сиих опусов.
зы
к слову сказать я, тоже делал довольно сомнительную шнягу, авторун на флеху которая эмитировала окно выбора баз 1с, при выборе базы — сливала все на флеху и паралельно запускала 1с (ни окон, ни процесов ее небыло видно), делал для ревизии биг босом своих филиалов на предмет «левых баз».
Ну зачем же так с фаром а?, прямо в вирусы его? Однако рушатся основы мироздания! Ничего против total не имею. О, вечные споры! Ой что это я? 🙂
(39) просто жесть
(68) Far и есть вирус
(70) Олег, не пойму, есть у тебя смайлик во фразе или нету 🙂
мдее…
(67) А чего искать далеко…
Встречал 2 раза. Одна обработка была с CDO.
(62) Не обязательно закрывать паролем, я например, регулярно использую «функционал поставки без исходных кодов». И связано это обычно не с «ценностью» кода, а установленными в обработках ограничениями, что-то вроде демо версии. При определенной договоренности с клиентом, это так же может быть защита кода от всяких «умельцев», коих в области 1С великое множество, а клиент оплативший обработку опасается «утечки» модуля к конкурентам (пример из жизни: привязка обработки загрузки деталей в 1С из ETKA 7 к конфигурации заказчика). Профессионала это не остановит, благодаря самой концепции 1С как «открытой» платформы — даже защита на донглах не состоятельна (имеется в виду сама возможность снятия защиты, а не коммерческая обоснованность подобных действий), зато очередное «юнное дарование» скорее всего потерпит фиаско…
(65) Ну-ну, стрелятель… я лично знаю несколько организаций где в результате выполнения моих обработок была «надежно убита» измененная конфигурация, правда я не портил данные, всегда оставлял им возможность вернуться к типовому функционалу. И связано сие не с детской тягой к разрушению, а с «не чистоплотностью» некоторых заказчиков, «забывавших» что кроме предоплаты еще есть окончательный рассчет, либо считавших, что «любой 1С-ник» и тарелке супа должен быть рад -«вас же как грязи, мне любой такое за 3 рубля напишет…».
Потом выясняется что не любой, но с заказчиком, у которого ТАКОЕ ко мне и моим коллегам отношение, я работать уже не буду.
Хотя на столько явные «закладки» я никогда не оставлял. Обычно, для 7.7, это была какая нибудь часто используемая кнопка, а восьмерка — просто рай для экспериментаторов 🙂
(65) А вот не чистоплотным мыло в обработку и я подсовываю, опа не оплатили и можно начинать мылить попы, а как же здесь вам ни тут и за тарелку супа писать не будем, т.к. если бы все было так просто «русский бейсик» по мимо всего мозг должен иметь хотя бы 50% знаний бухгалтерского учета для корректной доработки того или оного объекта, а то было один чуюдик стырил мои нароботки для одной фирмы и за бабулесы внедрил их в другую конфигурацию и управился, а оно опачки опатуленьки и не работает хорошо что не ушатал базу и то ладно так что желающих поиметь программеров 1С просьба не обольщаться, программеров то дофига а ИСТЕЕНО ШАРЮЩИК ЕДИНИЦЫ.
З.Ы.
h00k — так что правильно ты их надо знать себе цены если ты спец. А просто хацкерам которые пишут вреднасти все равно стрелять буду.
77 адресавал 75-76, ошибся простите засранца..
Спасибо огромное за предупреждение! Только что скачала внешнюю печатную форму М-11 к операции, введённой вручную. Потратила единичку на это безнадёжное мероприятие…. А там пароль на модуль объекта…
Бугага! Я даже на думал о таком, спасибо за предупреждение!
(80) Щас конечно сделаю неприятно но статья — 25.05.2009 14:15 за это время можно стырить вернуть- потом еще раз стырить много-много раз… И как любой уважающий себя программист — вы должны иметь не клиническую паранойю и таблетки от неё 🙂 … А вообще любая закрытая обработка даже за деньги — есть черный ящик и НИКТО не гарантирует что там такого нет.
да уж…
для этих целей использую снималку паролей, благо они есть везде в свободном доступе
а разработки закриптованные и использующие ВК, тем более самописные стараюсь не пользовать
(81) iov,
Да вообще никто и ничего не гарантирует. Есть Windows — закрытый код, никто не гарантирует, что нет бэкдоров. Есть Linux — никто не гарантирует, что нет уязвимостей(тех же бэкдоров).