Решение задачи «как защитить то или иное действие в 1С от несанкционированного доступа».
У многих, наверное, возникал вопрос: «как защитить то или иное действие в 1С от несанкционированного доступа»? Можно, конечно, настроить права доступа, ограничить все и вся, но иногда таких средств может быть недостаточно.
На мой взгляд, одним из возможных решений в данном случае может быть использование сервера сценариев Windows WSH плюс аппаратное подтверждение той или иной операции в 1С. Все знают или хотя бы слышали про аппаратную защиту клиент-банков, основанную на действии eToken. На мой взгляд, это не менее эффективный, но зато гораздо более дешевый метод. Из трудозатрат займет не более 30 минут программирования плюс стоимость съемного устройства. Устройством может быть САМАЯ дешевая флешка.
Метод основан на проверке уникального идентификатора устройства- его серийного номера. Достаточно ограничить программно, скажем в процедуре «ПриЗаписи()» нужный нам серийный номер устройства и больше никто не сможет произвести это действие (если, конечно, этот пользователь не обладает навыками программирования и имеет доступ в конфигуратор ). Серийный номер можно указать открыто, так как подделать его, насколько мне известно, не представляется возможным в 99% случаях.
Код проверки серийного номера и некоторых других параметров флеш носителя:
FSO = Новый COMОбъект(«Scripting.FileSystemObject»); // создание объекта
Drive = FSO.GetDrive(«G»); // создадим объект Drive
// Информация о диске G
МеткаДиска = Drive.VolumeName; // метка устройства
РазмерДиска = Drive.TotalSize/1024; // объем в Кбайтах
СерийныйНомер = Drive.SerialNumber; // серийный номер устройства
Опрос можно производить по всем имеющимся дискам или по какому-то конкретно, как в данном примере.
Так же можно усложнить защиту, добавив на «флешку» определенный файл. Защита той или иной операции в 1С будет осуществляться при чтении нужного файла на «флешке».
«Флешка» может быть с дактилоскопическим сканнером, что дополнительно увеличит степень защиты системы. Первый и второй способ можно комбинировать.
Пример кода:
Путь = «G:key.txt»; // Путь к файлу
Попытка
Текст = Новый ЧтениеТекста(Путь, КодировкаТекста.UTF8);
Стр = Текст.ПрочитатьСтроку();
Исключение
// действия при отказе
КонецПопытки;
Получаем, что если на носителе нет необходимого файла, то проверка не будет пройдена.
Таким нехитрым способом можно защитить выполнение тех или иных операций в 1С от несанкционированного доступа. Данная проблема весьма актуальна при реализации электронной подписи документов лицом, принимающим решение.
Например, при решении задачи электронной подписи «заявок на расходование средств». Предположим, что руководитель (Генеральный директор, коммерческий директор, финансовый директор, и т.д ) желает достичь высокой оперативности оплаты заявок на расходование средств, но в то же время, хочет контролировать все заявки самостоятельно путем электронной подписи. Метод аутентификации пользователя средствами windows не всегда может удовлетворить желания руководства, так как пароль достаточно просто скомпрометировать. Вероятно, что предложенный мною способ защиты, сможет решить данную проблему.
Я не стал бы сравнивать надежность данного метода eToken, но от низкоквалифицированного «взломщика» может помочь, — особенно в случае «security through obscurity».
http://www.xboxharddrive.com/freeware.html
http://www.codeproject.com/KB/system/change_drive_sn.aspx
Пара ссылок из гуглпоска:
(0), (1) Как 1С-программист и больше консультант-внедренец, чем железячник, скажу:
— про еТокен только слышал название, о сути технологии не знаю, поскольку с другими задачами сталкиваюсь… так что спасибо за то что в статье написали «Все знают или хотя бы слышали про аппаратную защиту клиент-банков, основанную на действии eToken»…льстит неимоверно 🙂
спасибо за статью! полезно
Я тоже в свое время думал о такой защите, удивительно как ее легко ломануть.
Но собственно луюбая защита легко ламается опытным человеком. И любую защиту можно усложнить, и эту тоже, к примеру контрольные суммы и т.п.
Вобщем всегда можно привести защиту к такому уровню что ломать станет невыгодно, это баланс сил, инь и янь 🙂
(1) А за ссылки спасибо, пополним опыт взлома 🙂
приятно читать.. по такому сценарию и надо добавлять статьи-обработки, открытый кода прямо в описании и все наглядно.. респект..
Спасибо за комментарии коллеги, очень приятно. это моя первая публикация, так что вдвойне 🙂
По теме хочу добавить, что данная проблема не предполагает 100% защиты. Мы все помним из теории информационной безопасности, что стопроцентной защиты не бывает, можно лишь сделать нерентабельным обход защиты, как, например, со сложными паролями- подобрать можно любой, но на подбор уйдет столько времени, что информация будет уже неактуальна.
Так же и здесь. Эта защита от персонала внутри компании. Считается, что защищать информационную систему от администраторов (1С, БД, сисадминов) смысла не имеет, как не имеет смысла защищать вход в жилище от самого хозяина 🙂 Поправьте меня, пожалуйста, если ошибаюсь.
Предложенный мной вариант защиты навеян несколько навязчивым желанием нашего финансового директора быть уверенным в том, что никто кроме него не подпишет электронно документ в 1С. Данная защита всего лишь увеличивает сложность несанкционированного доступа, но на 100% от него не защищает, особенно от того, кто имеет доступ в конфигуратор и немножко разбирается в коде 1С.
Я немного знаком с системой eToken. Тут дело все в том, что етокен требуется лицензировать (не слишком дорого, но все же). Сами ключи покупать и плюс лицензии. Ну и опять-таки, главный принцип взломостойкости eToken — шифрование, честно говоря, я не знаю, как в 1С работать с шифрованием ключей, если кто знает — подскажите, буду благодарен.
В данном методе цена вопроса — цена самой дешевой флешки, хоть на 1 Мб. ну и немножко кода 🙂 Флешка с дактилоскопическим сканером у китайцев стоит примерно 50$.
а что именно интересует? я думаю через внешние библиотеки. а так наверное можно использовать net framework (microsoft) -System.Security.Cryptography, те объекты, которые COMVisible…
http://infostart.ru/public/76282/
PS публикация очень сильно напомнила
а что именно интересует?
Да в общем то все. Как вообще работать с шифрованием через 1С? Шифрование, если оно не очень сильно повлияет на производительность, поможет минимизировать недостатки предложенного мною метода.
За ссылку на публикацию спасибо- я её не видел, почитаю.
(7)
«Тому не надо за чертом ходить, у кого он за плечами сидит»
© Пузатый Пацюк
(8) Abadonna, Спасибо огромное, очень полезно!
Просто и со вкусом. Спасибо, «плюс».
спасибо за статью, интересно.
правда, задумалась теперь, думаю, какому сегменту фирм это нужно
До этого не дорос, но буду иметь в виду, что есть токая возможность. Спасибо!.
публикация очень сильно напомнила
а я голову ломал, что что-то подобное видел уже
И долго будете ключ на ключ на ключ насаживать??
полно портов ЮСБ? или система мало захламлена всякими длл и примочками к ним??
или думаете, что «вскрыть» 1с — это легко, а вот длл — ну это ваще, круть…
Единственная защита — обфускация кода.
Но это само по себе ставит крест на свободном развитии такого кода и такой платформы. Что идет в противоречие с «как угодно настраиваемые конфы».
Никогда не задумывались, почему у 1с полно открытых типовых конф, а у доморощенных разработчиков — сплошь и рядом «ключи-и-длл»?
И чьи разработки больше покупаются — типовые открытые, или «супер продвинутые», но закрытые для доработки??
Подумайте и сделайте вывод. И не тратьте время на эту хрень.
Уже сейчас в разработке полно вскрывателей конф и баз. И если платформа-база будет вскрыта, никакие ваши «хаспы» никого и ни от чего не защищат окромя противодействия нормальной работе сервера..
Даже себя.
(14)
Единственная защита — обфускация кода.
Палочку-то слегка перегнул. В конкретной статье разговор шел вовсе не о защите кода, а о том, что только некоторое лицо, обладающее «электронным ключом», может провести некий документ.
Другое дело, что я себе с трудом представляю это лицо, бегущее к серверу терминалов, и втыкающее там флешку. А если в сети, претендующей на право приличной, юзверям разрешено пихать флехи в свои компы, так это вообще большее преступление, чем взломы никому на фиг не нужной с этой точки зрения 1С. То же самое «ответственное лицо» своей флехой может нанести такой урон сетке, что никакие «засекреченные» данные из 1С того не стоят.
Кстати!
Если вопрос стоит именно так, может быть стоит слегка отойти от языка домохозяек 1С, при проверять наличие такого «ключа» прям на старте Windows твоих рукодятлов?
Заблокировать комп — как два байта отослать.
Вот, например:ссылка Блин, не то, но из той же оперы
Местами полезная фича.
Но 8.2 с их настройкой прав, сама кого хочешь заменит 🙂
Спасибо, интересный подход, полезная вещь.
(18) Блин, да что ж вы прям с наивным удивлением на подход смотрите?
Доступ к Секретной Информации с КЛЮЧА
Описан тут же еще аж больше года назад.
И «покруче», не только проверка на флеху, но и на выполнение кода с этой флехи.
И даже в этой ветке эту ссылку давали в (6)
+/19/ Совет: подождать месяца три, назвать статью «Использование ключа для защиты информации», предложить использовать флеху, и спокойно дожидаться комментариев «интересный подход!»
(15) Abadonna, а зачем тогда порты юсб?))) и как тогда вообще люди будут работать и производить обмен докментами, или работать с документами дома, я считаю себя приличным сисадмином и сеть у нас претендует на приличную, но если бы я закрыл бы порты юсб, то я бы сразу вылетел бы с работы, за такую самодеятельность)))… Вот, ближе надо быть к пользователям
(19) Abadonna, в той публикации проводится проверка на наличие информации на носителе- это вторая часть моей статьи. В первой части проводится проверка на наличие конкретного ключа по серийному номеру. Эти два метода можно комбинировать. Как было написано в (1), можно поменять и серийник устройства, но не надо забывать о целевой аудитории разработки. Никто не претендует на уникальную защиту и не позиционирует её как нечто невзламываемое. У каждой задачи свои цели
(21) kozlovvp, согласен с вами. защищать сетку надо грамотно, а не перекрывать повсеместно порты USB. ИМХО
(21) Они у тебя может быть и локальные админские права имеют?
Зачем закрывать (не всем, конечно) охотно поясню:
1. Чтобы втихушку не сперли инфу с работы
2. Чтобы заразы флехами не натащили
А скинуть на флеху: будь добр приди к админам с соответствующим разрешением и флехой — тебе скинут.
И точно так же закинут.
Вот у нас бы ты за самодеятельность с открытыми портами и вылетел бы сходу.
Забыл спросить: у тебя и порты на мыло стандартные открыты?
Спасибо огромно, очень полезная статья!
(14) Статью перечитайте. Вы вообще ничего не поняли:)
Почему Вы жестко привязываетесь к литере «G»? Если флешку вставить в другое гнездо, то с высокой долей вероятности буква, на которую она смонтируется, будет другая. Надо сделать перебор всех возможных дисков (скажем, с «Е» до «Z»)
Хорошая статья на заметку
(27) dumal, ну наверное потому что это статья, а не готовая программа 🙂
Безусловно надо делать проверку всех носителей.
(22)
Давай уж по честному: метод тут один — убедиться, что есть флеха, и на ней что-то есть (или нет).
Весь метод — это флеха, а уж как её использовать — дело сотое.
(24) Abadonna, Прошу прощения но это уже пошел офтоп. Доступ к инфе нужно разделять на стадии включения компьютера) и каждый несет ответственность за ту инфу к которой он имеет доступ.
Некомпетентность некоторых ораторов по поводу аппаратной защиты поражает.
В статье описана попытка изобрести аутентификацию по смарт карте.
Самое простейшее решение для описанных в статье проблем — это использование смарт карт в любых их проявлениях (eToken, ruToken и т.д.) в зависимости от необходимой стойкости. При этом в 1С ничего делать не потребуется, достаточно обеспечить Windows авторизацию.
Стоимость решения не больше стоимости флешки, а при нежелании создавать свою структуру PKI можно использовать государственную, тогда все ваши действия будут еще и юридически значимыми априори (при использовании механизма подписи ЭЦП).
Все остальное придумано давно и надежно и не зачем изобретать велосипед. RTFM!
(32) marochkin, читайте, пожалуйста назначение данного метода. Не стоит задача залочить комп! Это уже забота других людей. Стоит задача подтвердить выполнение какого-либо действия в 1С аппаратно. Прошу заметить, какого-либо, а не всех подряд. Если Вы знаете как работать с eToken из 1С (именно прохождение аутентификации пользователя) поделитесь -буду благодарен.
(31)
И какую интересно? Или это как покойный Черномырдин утверждал, что он за все отвечает?
И чем он ответил — беднее стал?
Не надо даже возможность давать в дальнейшем за что-то отвечать, ежели что…
Потому что после «ежели что» уже достаточно по барабану будет, кто за что ответит.
Ну, ответит, предположим, увольнением. А убытков на пару лимончиков…
(33) Публикация автора абсолютно ясна и не зачем разводить офтоп, он просто высказал свою идею, а необходимость в применении и реализация, это уже дело каждого
+/34/
А к 1С доступ у хреновой тучи людей, а 1С-прог, предположим, тупой. Или неопытный.
Значит любой манагарешко может, при желании, список контрагент
Коллеги, давайте прекратим офтоп.
Буду благодарен, если в комментах будут замечания/предложения по делу и обсуждения по делу, а не философствовать на темы вроде «разрешать ли флешки на предприятии». Это каждый админ решает для себя сам.
(37) Вот сразу и видно, что ты неопытный.
Этот «оффтоп» твою разрабоку всё время как раз в топ форума держит.
И народ лишний раз сюда зайдет. И, глядишь, и плюсик поставит.
Да! А по теме: а чего тут вообще обсуждать? Лично я лет 5 назад, чтобы моя великовозрастная дочка в мое отсутствие в интернет не лазила написал прогу, которая сразу при старте винды проверяет есть ли флеха и сразу шатдаун. Метод, повторюсь, тривиальнейший. Что ни грамма не умоляет твою статью.
Тем более, оказывается, не все до этого могли додуматься
________________
P.S. И по теме уж совсем. Тогда уж лучше нужному человеку подключить кард-ридер, и считывать/проверять карточку.
Куда как меньше вероятность, ибо флехи все таскают, а вот насчет карточки — сложнее
(38) Abadonna, ну да, ты прав- это моя первая публикация 🙂
О чем, кстати, честно признался в (5)
(33)
Любая задача должна быть оправдана. Задача которая позволяет в итоге решить проблему определенного рода, является решением этой проблемы.
Какую в итоге решает проблему задача подтверждения какого-либо действия аппаратно ? Как мне кажется это есть аутентичность. Я же своим комментарием оспариваю ваше:
То есть вы говорите, что при использовании системы прав, уже разработанной в какой либо конфигурации невозможно решить все вопросы касающиеся доступности тех или иных действий ?
С этим не соглашусь! 1С предоставляет абсолютно гибкие варианты настройки прав и в 8.1 и еще гибче в 8.2 (в плоть до видимости элементов на форме), то есть правами решаются абсолютно все вопросы, касающиеся ограничения действий пользователя.
Можно предположить, что вы имели ввиду возможность компрометации паролей пользователя (что я и предположил отвечая), но при этом можно усилить защиту авторизацией пользователей в 1С через Windows. Авторизация же пользователей в Windows многогранна и одним из вариантов является смарт карта или токен — аппаратная реализация авторизации внедрение которой гораздо проще и правильнее вашего способа.
Поэтому
не требуется в принципе !
С eToken в 1С можно работать и для аутентификации в различных вариантах и через CSP и напрямую с клюем, если это eToken ГОСТ с аппаратной реализацией криптографических функций (в данном случае понадобится внешняя компонента), встраивая функции аутентификации в глобальном модуле «ПриНачалеРаботыСистемы». Все это не составит сложности.
Так же возможно использовать этот механизм как и ваш алгоритм, но он к сожалению практического смысла в применении не имеет.
(40) marochkin, понял вашу точку зрения. спасибо.
(41) Кстати а чем ваш фин. директор подписывает документы в 1С ?
Сейчас вроде как уже повсеместно для электронной подписи используются аппаратные средства!
Те же флешки с хранением контейнера КриптоПРО CSP который под паролем и достается только через подсистему CSP.
То есть сама по себе электронная подпись является залогом того, что этот документ подписан конкретным человеком. Работает принцип неотчуждаемости. И без вставленой в USB флешки или eToken или ruToken с контейнером или eToken ГОСТ или ruToken ГОСТ и без знания пароля на контейнер или защищенную память брелока подписать документ невозможно !
ЭЦП по своей сути гарантирует подпись конкретного человека, время подписи и то что подписанный документ не изменялся с момента подписи !
(42) marochkin, я знаю что такое ЭЦП и с чем его едят. Я Вас и спрашивал: каким образом можно работать с eToken через 1С, вы вроде ответили. На данный момент подпись документов проводится с помощью изложенного в моей статье метода, который, в рамках предприятия, считается достаточным.
(43) По поводу примеров реализации ЭЦП в 1С посмотрите в демо конфигурацию «Библиотека стандартных подсистем», подсистема «ЭлектроннаяЦифроваяПодпись». Там все все все… кроме работы с eToken ГОСТ но и это думаю не за горами.
В рамках данной подсистемы в 1С реализованы механизмы шифрования/расшифрования и подписи/проверки подписи через CSP.
(44)
Ну и до кучи расскажу, тем кому лень гуглить, чем отличается eToken ГОСТ от остальных ранних реализаций eToken.
Данная модификация eToken поддерживает криптографические функции на аппаратном уровне. На деле это java аплет вшитый в брелок который выполняется в нем же. То есть если раньше для выполнения криптографических функций требовалось CSP, то теперь вам нужен только ключ с java аплетом. При этом никаких дополнительных драйверов в систему устанавливать не нужно. Ранее же требовались специальные драйверы, через которые работают CSP.
Чтобы работать с eToken ГОСТ необходима библиотека реализующая стандартPKCS#11 , такие в сети уже существуют. Так же я встречал обертки на .Net позволяющие писать программу на этой платформе для работы с этими ключами. На хабре есть статья по этом поводу с примерами кода. Думаю не составит труда написать внешнюю компоненту для 8.2 использующую данную библиотеку.
Стоит отметить что данный вид ключей сертифицирован ФСБ и на ключевые пары созданные в таком аппаратном ключе дозволено выпускать сертификат сроком действия до 3 лет ! На другие виды ключей не более года.
Интересно, что в брелок легко встраивается RFID метка которую можно использовать в пропускных системах и системах учета рабочего времени.
Мне кажется за этим типом ключей будущее, но это IMHO 😉
(44) marochkin, спасибо! обязательно посмотрю! Очень полезная информация!
З.Ы. ессно, «плюс» 😉
(45) Что флеху в комп пихать обычную, что ключ электронный — монопенисно что-то пихать.
И так уже задрали бухи, у которых комп как ежик выглядит.
Если уж все равно пихать, так лучше, имхо, самому на обычной флехе накриптовать как пожелаешь и с какой угодно сложностью пожелаешь. Вплоть до проверки железа (вот уже идентификация конкретного компа), SID юзера и любой прочей хрени. Зато уж точно знаешь, что сделал и как оно работает.
Идея интересная. Но вот защита кода в конфигураторе куда более важная задача, чем невозможность выполнения действия. Т.к. скрыв код, получаем полную защиту модуля от махнатых ручек. А так «+»
(48)Скрыть код конфигураторе — как два байта отослать с помощью ВК.
Причем. для 7.7 вообще прям сам код можно прописать в ВК, благо интерфейс предоставляет метод ExecuteBatch.
Для 8х можно использовать прямо встроенный уже Выполнить.
Только на фиг оно надо?
(47)
Ну в общем то достаточно почитать документацию и стандарты, чтобы точно знать как оно работает. Иначе вы в пустую потратите деньги на реализацию велосипеда.
(48)
Предлагаю вам открыть ветку или написать статью по этому поводу, там и по-обсуждаем. В рамках этой же темы обсуждалась аутентичность и права на действия.
(49)
Или вы напишите статью про то «как два байта отослать», думаю всем будет жуть как интересно почитать и по-обсуждать жизнеспособность метода !
(50)
1. Ненавижу это выражение «велосипед». Кто помнит какой он самый первый был? Во-во! Его реализуют постоянно, и это хорошо.
ФОРУМ
Плагин , и что-то никто не обиделся 😉
2. Время впустую никогда не трачу.
3. «Как два байта отослать» давно реализовано во многих моих ВК, в т.ч. и в Miracle. О чем там еще писать?
4. Писать статью на ИС не буду принципиально. Кому интересно, задавайте вопросы в форуме
P.S. Был велосипед — плагин для фара. Я «изобрел» свой
+/51/ Господин marochkin, видимо, плохо себе представляет, кто такой Великий и Ужасный :)))
Тут моих статей по ВК — хоть зачитайся. И ВК тоже 😉
Текст анти-оффтопика: «Технологии смарт карт развиваются c 1982г. Как вы думаете сколько людей участвовало в этом за все это время? Сколько идей и нововведений в данную технологию было привнесено. Сколько ошибок найдено и исправлено. Сколько ситуаций прецедентов разобрано и исправлено в идеологии. Ну как можно утверждать, что один человек в состоянии взять и не основываясь на предыдущем опыте технологии с нуля изобрести нечто подобное ? Соглашусь с тем, что это не исключено, но тогда представляю каким известным и богатым станет этот человек.»
Я так понимаю Abadonna живет на кайманах?
(51)
«Изобретать велосипед» ?
1. Не подменяйте понятия или вы правда не понимаете значения выражения
То есть заведомо если вы придумываете что то принципиально лучшее, то это никогда «велосипедом» не назовут. Ненавидите потому, что часто слышите ?
3. В ваших публикациях не увидел не одной ВК на тему защиты кода конфигурации от изменения. Если про два пальца имелось ввиду написание ВК в принципе, тогда простите.
4. В чем же принцип ?
(52)
Нимб не жмет ?
(54)
Офигенно полезная информация в рамках топика ! Мы тут отношения выясняем или все таки пытаемся поделиться полезной информацией с человеком который придет в топик по поиску? Ваша толерантность шикарна ! И когда мы успели на «ты» перейти ?
А кто про защиту о изменения говорил?
Вот что сказано в (48)
Скрыв код, на что я и написал «как два байта отослать».
Если не дошло, как — извиняй, не подаю по четвергам.
Ни грамма. А ты прояви себя хоть как-нибудь, хотя бы вот тут на картинке, тогда и сам можешь примерять.
А проповедовать готовые решения — это еще инструкторы райкомов КПСС ловко умели.
имхо метод нужный , но только тогда когда у посторонних нет доступа к флешке.
Актуальная статья однозначно +
(54) Abadonna,
ну и ладно, ну пусть накидают автору плюсиков…
Что эти плюсики и их количество значат? да ничего…
у вас ведь тоже есть свободный доступ? ))
Вот у меня нет свободного доступа, а надо бы, но что ж делать-то..
Пусть теоретизируют на здоровье…
1с не заставит себя ждать, снова поменяет все кардинально — и снова кто-нить появится, и будет плюсики на этом зарабатывать…
хоть на «аппаратной» защите, хоть на «безглючная работа или как избежать багов в 1С»…
(57) Люблю по пунктам, так и отвечу:
Статьи и разработки . Да, он не раскручен пока, но я-то помню как Инфостарт начинался. Как раз всякие чебурашки, планеты, кушниры, абадонны наполняли контент.
1. Для своего свободного доступа я кое-что сделал еще тогда, когда ни о каких доступах и речи не было.
2. Своим свободным доступом я пользуюсь только в двух случаях: скачать что-нибудь свое (под рукой в конкретном месте не отказалось) и по «просьбе трудящихся». Есть у меня (плохая?) черта характера: чем брать готовый китайский велосипед, лучше сделать свой. В 90% случаев это оправдано: иногда проще сделать, как оно тебе надо, чем чинить/допиливать чужое.
3. То, что сейчас ради заветных 30 народ кладет (по моим понятиям) черт знает что — мне не нравится, и не нравилось давно, еще до всех ограничений доступа. Но это дело их совести и их понятий, что стоит выкладывать на всеобщее обозрение.
4. Но (по п.3) какому-нибудь бухгалтеру тете Мане, конечно, гораздо интереснее готовая внешняя печатная форма, чем серьезная разработка. Потому и ВПФ имеют право на существование, если они кому-то могут пригодиться.
5. Публикуйтесь на нашем сайте — там нет никаких ограничений:
(58) Abadonna,
По пункту 2 согласен на все 100% 🙂
По пункту 4: ну я то же зачастую качаю ВПФ с инфостарта, у нас очень много мелких допилов печатных форм, считаю что люди, которые их выкладывают делают доброе дело- экономят лично мне время.
(58) к тому и идет — что вместо одного большого ресурса будет множество мелких сайтов той или иной наполненности, с повторами/лакунами, и разной степенью отклика авторов.
А то, что выкладывают всякую ерунду — так заставляют выкладывать, чтобы скачать опять же ваши разработки хотя бы…
полезно
(58) теперь и 30 не помогает 🙂