Защита интеллектуальной собственности для 8 (простые примеры разработки)




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-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='\

38 Comments

  1. coder1cv8

    Вобщем-то всё верно, если исходить из того, что это защита ОТ ПОЛЬЗОВАТЕЛЯ. В остальных случаях всё это бесполезно, так как обработки для просмотра исходных текстов модулей (запороленных или скомпилированных) есть в свободном доступе, в том числе и на этом сайте.

    Так же хочу заметить, что представленную «систему защиты» можно обойти, если кроме «перевода стрелок» стереть темповые файлики или просто зайти в 1С под другим пользователем.

    В целом плюс за пример реализации ШТАТНОЙ защиты.

    Reply
  2. Legavaz

    К сожелению не встречал, инструментов для открытия запороленных обработок, на основании чего де — юре полагаю , что данная защита надежна.

    не сочтите за труд и просто укажите подобную нароботку, повторю, что открыть нужно не базу данных, а именно обработку.

    Reply
  3. Legavaz

    Дополнительно, хотелось бы сказать, что если на предприятии имеются люди столь искушонные в программировании на 1С то для чего заказывать программу стороннему разработчику.

    Reply
  4. diims

    Писал такую-же защиту по времени.Действенно…Но как вот ее удаленно отключить после оплаты??))…Может на обработке проведения платежного поручения исходящего добавить проверку на контрагента (т.е. себя ) и устраивающую сумму))

    Reply
  5. alex_bob

    Очень сомневаюсь, что закрываемый код является шедевром или ноу-хау. А вот что он содержит невыявленные ошибки уверен почти наверняка. Стоимость имеет не код, а его сопровождение. Я со сторонними разработчиками работаю только при условии предоставления исходных кодов и никогда не соглашусь по-другому.

    Reply
  6. O-Planet

    По-моему, тема штатной почти не раскрыта.

    1. СохранитьЗначение и ВосстановитьЗначение — это слишком дико.

    2. Нет блока получения лицензии, который штатными методами сделать достаточно просто

    Reply
  7. Legavaz

    ну что же, спасибо за критику. Мною была представлена на суждение не панацея, а лишь альтернатива которая просто имеет место и право быть, и в случае определенных ситуаций может быть использованна.

    Всем приходится с чего то начинать, и если говорить о сопровождении, то зачем поддержить законченное решение которое удовлетворяет требованиям заказчика, и опять возникает ситуация (самому писать лень, мы лучше покритикуем или наверняка в вашем коде имеются ошибки), но это просто глупо передавать клиенту код который не работает. Никто не спорит если вы хотите работать с исходниками, программистов тем более на 1с заботит свой, личный так сказать шкурный интерес. И код обязан передоваться когда работа закончена и проведены все расчеты с программистом. И словом о ноу — хау программист имеет право считать то что считает по своему личному мнению.

    Reply
  8. Legavaz

    и уж ни в коем случае не соглошусь с определением *Стоимость имеет не код, а его сопровождение* так как оно СОПРОВОЖДЕНИЕ зачастую отстает от профессионального уровня программиста, Ни кто не спорить что программные продукты обязанные быть актуальными не должны поддерживаться, но что один называет сопровождением другой назовет простой тратой денег. Но что хотелось бы просто донести до читателя это аксиома: законченая работа должена быть оплачена!

    И если человек лучше спит по ночам, если его машина на стоянке или на сигнализации это его право , и кто его осуждает видимо делает это не просто так!

    Reply
  9. coder1cv8

    (2) Вот EI вроде может http://infostart.ru/projects/782/ ну и есть ещё ДекодированиеМодуля.epf

    Много раз уже обсуждалось, что штатная защита восьмерки обходится без проблем…

    А вообще, я за открытый код (если говорить про 1С, так как это одно из важнейших её достоинств), никогда не понимал людей которые покупают решения с закрытым кодом…

    Reply
  10. Шёпот теней

    Мнение от противного:

    двайте на эту ситуацию посмотрим и со стороны покупателя… Вы заказали, оплатили, получили программу а через некоторое время оказалась, что она 1-ое даёт ошибку; 2-ое требует доработки по той или иной причине; и 3-е и 4-е и … как быть… ? кто прав кто виноват… в итоге, я думаю, пострадает авторитет программиста..

    Reply
  11. Abadonna

    (10) Тут еще хуже: а если «сопровождающего» кондрат хватит или трамваем переедет? И песец вашей норке…

    Reply
  12. MMF

    Какое-то веяние пошло выкладывать примитивный код с патетическим описанием 🙁 сайт для ламо коматозных

    Reply
  13. Stepa86

    (10) считаю, что программы без ошибок не существует. При получении программы перед оплатой заказчик имеет право ее потестить и сказать работает она или нет, и если он говорит(подписывается), что работает, то за любое дальнейшее появление ошибок(особенно если они повились через месяц или год) программист отвественности не несет, и кстати гарантия на програмные продукты не распространяется… нормальные фирмы просто предлагают бесплатно исправить свои(!) косяки в течении гарантийного срока, который определяют в договоре. Если продукт требует доработки через полгода — то это уже другая работа, которая и оплачивается отдельно. естественно, что в договоре по сопровождению может быть много чего описано-но он не является обязательным. (че то много букоф получилось, а смысл думаю никто не поймет =( )

    Reply
  14. Abadonna

    (12) » Дело в том, что самые интересные и изящные научные результаты

    сплошь и рядом обладают свойством казаться непосвященному заумными и

    тоскливо-непонятными. Люди, далекие от науки, в наше время ждут от нее

    чуда и только чуда и практически не способны отличить настоящее научное

    чудо от фокуса или какого-нибудь интеллектуального сальто-мортале. Наука

    чародейства и волшебства не составляет исключения. Организовать на

    телестудии конференцию знаменитых привидений или просверлить взглядом

    дыру в полуметровой бетонной стене могут многие, и это никому не нужно,

    но это приводит в восторг почтеннейшую публику, плохо представляющую

    себе, до какой степени наука сплела и перепутала понятия сказки и

    действительности. А вот попробуйте найти глубокую внутреннюю связь между

    сверлящим свойством взгляда и филологическими характеристиками слова

    «бетон», попробуйте решить эту маленькую частную проблемку, известную

    под названием Великой проблемы Ауэрса! Ее решил Ойра-Ойра, создав теорию

    фантастической общности и положив начало совершенно новому разделу

    математической магии. Но почти никто не слыхал об Ойре-Ойре, зато все

    превосходно знают профессора Выбегаллу. »

    (Понедельник начинается в субботу)

    —————————————————————

    Так что привыкай ;)))

    Reply
  15. artbear

    (14) ИМХО в (12) говорится о том, нафига люди выкладывают такую «мелочь» и какое повышенное внимание подобным «мелочам» уделяется 🙁

    Reply
  16. Donat

    А ещё в последнее время я начал замечать, что те самые технологические ноу-хау создают разработчики которые предпочитают OpenSource.

    Reply
  17. Dziden

    Это не система защиты, а цирк. Клиент умеющий пользоваться гуглем вломает за пару часов.

    Reply
  18. Legavaz

    🙂 Обязательно вЛомает, просне не может не вЛомать!

    Reply
  19. Шёпот теней

    Крамольный вопрос… (философский) ?:

    Ну почему русскому гражданину надо всё обязательно взломать… откуда это неуважение к чужому, частному… мы так наслаждаемся заграницей и её восхищаемся… а у себя все тырим и тырим…. что за «онанизм»… одни шариковы… видимо … все преображенские давно в париже…

    русская халява попахивает душком-с….

    отсутствие принципов — главный наш принцип… бей своих…. лучшее — делается только вопреки…

    Reply
  20. tango

    «Ну почему … откуда это»



    Есть такой рассказик, очень старенький, повесть временных лет называется.

    Там одна РУССКАЯ княгиня сожгла город, закопала живьем представителей населения… РУССКУЮ землю собирала… и так тысячу лет.

    Естественно, местное население уходит в альтернативу, в «воры». А у воров отношение к своей собственности очень жесткое, знаетел и. Друг у дружки воровать остерегаются.

    Reply
  21. Шёпот теней

    (20) маленькая ремарка…. вот воровать-то мы и не умеем только «спиз—-д—-…-ь»…. да и то, только, что плохо лежит…!

    Как сказал Высоцкий: «Настоящих буйных мыло вот и нету вожаков»…

    Reply
  22. Legavaz

    Переменовал, тему. Особо рьяные ждут чуда и видимо сильно переживают от того что оно не происходит, и если кто работал с реестром Win из восьмерки отзовитесь, будет полезно пообщатся.

    Reply
  23. coder1cv8

    (22) А что интересует? Можно через WSH, можно через WMI. WSH — проще, WMI — больше возможностей. Выбирай…

    Reply
  24. lustin

    учитывая что критика воспринята конструктивно, плюсую…

    Reply
  25. Шёпот теней

    опять философский вопрос?

    почему мы, пользуясь ворованными программами так заботимся о своём мимолётном труде… понятно, что он именно «МОЙ» а те ворованные разве не надеются на честный бизнес… почему такая несогласица в нашим головах…? своё — ить не кому… и дай бог своруют… а чужое, да ради бога… Вор это звучит гордо… Не дал — это звучит гордо… Ребята, а что собственно мы защищаем — свои разработки стоимостью в копейки… и не получается ли, что на защиту мы тратим больше чем на саму программу…

    если только сама защита не является программой….. дык и её то же своруют… а если не своровали … дык ваша программа просто никому и не нужна… такая вот логика получается…

    во-о-о-от такое невесёлое мнение…

    Reply
  26. Legavaz

    (22) просто кусок кода, для развития темы о защите.

    Reply
  27. tango

    Заботиться о своем — в природе вещей, ок?

    Не заботиться о чужом — тоже не противоречит, и даже подозрительно.

    Тогда вопрос (25) звучит типа «почему мы не любим друг друга?».

    Может быть, потому, что законы «о защите интеллектуальной собственности» не имеют в природе своей любви.

    Может быть, законы вообще не могут иметь любви в своей природе.

    Reply
  28. Шёпот теней

    (27) Заботиться о своем — в природе вещей, ок? — поддерживаю…. только сразу же задаём себе вопрос — что является для меня своим…? что является для меня моим…? ну и из этого сразу будет следовать, что для нас является чужим…. вот и получается, что для нас всё является чужим… если оно ворованное… значит чужое … возьмите все на чём мы работаем и в масштабе рабочего места, ПК + ПО, получится что на всём варованном мы делаем «типа» законно чистый продукт…?

    у законв природы нет человеческих законов, мы ведь не её проблема… она наша… но у неё есть свои законы… и яблока в верх не падает… а у нас очень даже может быть…

    во-о-о-от….

    Спасибо tango… удачи…

    Reply
  29. Legavaz

    (28) Один человек, сказал что «считать полностью своим можно лишь то, что можешь в любое время продать», и если рассуждать далее по твоей теме то и даже твоя жизнь не твоя, а следовательно как и мысли в не твоей голове.

    поэтому все относительно!

    Reply
  30. Шёпот теней

    (29) делаем вывод: что нас ограничивает во взглядах на мир только частная собственность… ведь продать можно только то, что тебе, по закону является твоим… и окружающие признают этот закон… ведь если они не признают… и если они не признают… ну, тогда…? то можно и в милицию пожаловаться…. хи-хи… опять побежим хоть и к плохому но закону… значит плохой закон лучше хорошего хаоса….

    ну а если всё относительно тогда чего обижаемся, что нам не заплатят деньги за наш «честный» труд… кажется ведь с этого начинается наша тема разговоров….

    воо-о-о-от…

    Reply
  31. tango

    гм… вот есть старая киевского происхождения присловица:

    «я бы продал родину, да не покупает никто».

    современно я бы перефразировал:

    «… да все уже без меня.»

    Reply
  32. tango

    э, нет, в сабже не было самоопределения «честный»

    в сабже вообще не было о труде.

    сабж — «дэнги, дэнги давай, да?», — а это нетленка

    Reply
  33. tango

    вау, какая мадера 1998! коктебель… в корпоративных отмечалках есть свои плюсы, несомненно

    Reply
  34. АЛьФ

    Все это — разговоры в пользу бедных. Против защиты выступают те, кого еще жареный петух в пятую точку не клевал. Но как только их много месячный труд отказываются оплачивать, при этом активно используя, они сразу же забывают о пренебрежительном «нетленка» и судорожно ищут способ обезопаситься от очередного кидалова.

    Понятно, что если чел занимается исключительно обновлением типовых или сидит на фикси на поддержке пары конфиг, то он так и будет всю жизнь с пренебрежением сплевавать на тех, кто действительно разрабатывает что-то свое и не желает отдавать это на халяву.

    Reply
  35. Шёпот теней

    (34) как мало прожито — так много пережито…

    всякое действие рискованно… если уж кинулся зарабатывать деньги…

    вопрос не о том нужна защита или нет… нужна… только от чего, кого и каково её моральное обоснование…

    и во вторых нарушаешь чужое право, почему не даешь нарушать свои права другим… это ведь справедливо… или… как…?

    воо-о-оот такое мнение….

    Reply
  36. Abadonna

    Ребяты 😉 А объясните мне, убогому, что там в 1С-ке можно интеллектуального понаделать, чтобы защищать? 🙂

    Пока либов туда не напихаешь — ничего путнего и сотворить-то нельзя. Вот творческие люди и пишут либы, и лежат они на том же Инфостарте: качай не хочу. А так.. ну конфигурация, ну документики, ну справочники… Труд — да, творчеством и не пахнет!

    Reply
  37. Abadonna

    +(37) Это я к тому, что заголовок лучше бы было сделать «защита своего труда», или, еще лучше «защита от кидалова» 😉

    А то понахватались американских словечек «хай», «вау», да еще «интеллектуальная собственность» :)))

    Reply
  38. Legavaz

    ой блин обозвал я не так тему, видно не в «тему» совсем давай те все понатыкам автору тычков 👿 мы же такие умные, библиотеки пишем, мы капец какие крутые бобры.

    Любой хороший программист исходит не из своих выпендрежей а из максимальной рациональности кода, тем более в обсуждалась проблема общения программиста и не программиста, я не преследовал целью закрыть все и вся для программиста, а только по глупости своей поддержать начинающих программировать людей.

    а по поводу словечек, я считаю это дело каждого что помещать в свой лексикон что нет, и как говорится если автор не хочет что бы была «запятая» то он ее просто не ставит.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *