Небольшой эксперимент для разбирающихся прогеров
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
ну на заборе тоже много чего написано
Мне кажется, вы все делаете неправильно.
Придумали и реализовали с прогером-разработчиком алгоритм, который, как мне видится, позволит избежать 100% скачки и полного недобросовестного копирования этой базы; прогер, хоть и реализовывал задачку, высказывает определенные сомнения.Я правильно понимаю, что Яндекс и Гугл тоже не смогут скачать?
Для такого типа сайтов наоборот всегда задачу ставят — несколько удобных разных каталогов для доступа к каждому объекту, ещё это "ёлочкой" называется. Чтобы уж "наверняка" поисковый робот дошел.
Точное соответствие ставишь => Перебираешь всё комбинации типа 'Ба%' пока
не покажет результат на странице, дальше "складываешь результаты в папочку".
http://www.sur-base.ru/water-base/?show_obj=1 по http://www.sur-base.ru/water-base/?show_obj=151861 нельзя/недостаточно?
Т.е. просто скачать все странички с
Насколько я знаю, для защиты от полного копирования в картографических сервисах специально вносят в данные некоторое количество малозаметных ошибок. Найдя эти ошибки у конкурентов, можно с уверенностью утвержать о факте копирования (с судебной практикой не знаком).
нельзя/недостаточно?да, нельзя и недостаточно. Объектов больше
Перебираешь всё комбинации типагммм, можешь прикинуть примерное количество этих комбинаций?
Перебираешь всё комбинации типалибо 100 запросов (две буквы - аа:яя либо 3000 запросов (три буквы - ааа:яяя)
было бы даже интересно узнать, сколько рек насчитает при таком способе
да, нельзя и недостаточно. Объектов большеНельзя или недостаточно? Программно можно перебрать до любой цифры и проанализировать все ответы.
вторым этапом будешь определять, какие из этого названия уникальны, а какие повторы?
Повторы отсеиваются программно без каких-либо проблем тем же этапом.
мне видится, потом устанешь выделять отдельные названияу каждого названия есть id, ничего отделять не надо
Река Белая (id:868)
Река Белая (id:2035)
Река Белая (id:2310)
Программно можно перебрать до любой цифры и проанализировать все ответы.это не решит задачи. Точнее - скачивальщик, поступивший таким образом, не получит весь массив
Повторы отсеиваются программно без каких-либо проблем тем же этапом.
не уверен, что тут получится. был бы я прогером - попробовал бы запустить и посмотреть, что и как выйдет. хочется думать, что скачивальщик окажется не настолько кропотливым и вдумчивым
у каждого названия есть id, ничего отделять не надовполне обходится, но мысль хорошая, надо будет учесть этот момент в защите
Река Белая (id:868)
Река Белая (id:2035)
Река Белая (id:2310)
это не решит задачи. Точнее - скачивальщик, поступивший таким образом, не получит весь массивЭтого нельзя гарантировать. Т.к. id-шки у вас достаточно перечислимы. Если бы это были uuid какие-нибудь или хеши, тогда были бы проблемы с перебором. А найти максимум — это сильно проще.
Это очень просто делается. Обычные пользователи не разберутся может быть. Но если человек более-менее грамотный захочет сказать или попросит кого-нибудь грамотного, то проблем не будет никаких.Повторы отсеиваются программно без каких-либо проблем тем же этапом.не уверен, что тут получится. был бы я прогером - попробовал бы запустить и посмотреть, что и как выйдет. хочется думать, что скачивальщик окажется не настолько кропотливым и вдумчивым
Как пример можно вспомнить товарища который тут свой каталогизатор лабает. Технологий никаких не знает, но уже каких "успехов" достиг.
это не решит задачи. Точнее - скачивальщик, поступивший таким образом, не получит весь массивТо есть если он переберёт все цифры вплоть до гигантских значений, то не получит весь массив? Я посмотрел 2-3 минуты, но не откопал ничего, что содержало бы буквы. При поиске я получил разные url, на которых были разные Id, но это тоже ни от чего не спасает.
не уверен, что тут получится. был бы я прогером - попробовал бы запустить и посмотреть, что и как выйдет.Получится, даже если не использовать Id в качестве ключа для отсеивания.
хочется думать, что скачивальщик окажется не настолько кропотливым и вдумчивымТвою задачу нужно решать, заменив доступ по Id на доступ по хэшу от Id плюс капчей на поиск. В текущем виде скачать все данные не так уж и сложно. Для точной оценки от программистов этого раздела детально опиши свою задумку.
То есть если он переберёт все цифры вплоть до гигантских значений, то не получит весь массив? Я посмотрел 2-3 минуты, но не откопал ничего, что содержало бы буквы. При поиске я получил разные url, на которых были разные Id, но это тоже ни от чего не спасает.Тем не менее, вдруг у них там реально есть буквы, просто беглым поиском они не нашлись?
МНе кажется как раз не надо тогда менять на хэш - большинство подумает , что там цифровой айди и тупо скачает все объекты до некого максимума, в то время как часть объектов как тут предположили содержит буквы и скачено не будет - в итоге разработчик на коне.
А найти максимум — это сильно проще.найдешь?
Это очень просто делается.
все таки наверное не так просто, если никто еще не сделал.
я к тому, что есть надежда на то, что скачивальщик поступит тупо, по варианту здесь упомянутому, скачает все номера, что выскочат, и успокоится - ну и пролетит
я к тому, что есть надежда на то, что скачивальщик поступит тупо, по варианту здесь упомянутому, скачает все номера, что выскочат, и успокоится - ну и пролетитСкачает не все, что выскочат, а на большом промежутке от 0 до сотен миллионов, и по разным URL. Во время тестирования он обнаружит разные url: www.gidromet.info с одними Id, www.sur-base.ru c другими, и так далее.
Как только он обнаружит какие-то странности с Id, а это обнаруживается уже при поиске "аб", сразу же автоматизирует поиск без капчи, искать повторы и перебирать очень просто.
Тем не менее, вдруг у них там реально есть буквы, просто беглым поиском они не нашлись?тут все просто: если при нескольких попытках поиска не находятся айдишники с буквами, то их там мало (насколько мало зависит от количества запросов, не выдавших айдишники с буквами т.е. ну и фиг с ними. А если тут цель выкачать именно 100%, то конечно надо одну какую-нибудь говнореку никому не нужную сделать с айди -100500хуйпессда!1111
МНе кажется как раз не надо тогда менять на хэш - большинство подумает , что там цифровой айди и тупо скачает все объекты до некого максимума, в то время как часть объектов как тут предположили содержит буквы и скачено не будет - в итоге разработчик на коне.
Основная мысли в его сомнениях - если скачивающий будет знать количество объектов-рек в этой базе, то он сможет просчитать и вскрыть алгоритм сокрытия инфы; поэтому попробовали сделать так, чтобы количество объектов правильно определить было бы невозможно.http://en.wikipedia.org/wiki/Security_through_obscurity
а вообще - я бы предложил ограничивать пользователя по количеству запросов в сутки + выдавать незарегистрированным/бесплатным (наверное, цель проекта - сшибать бабло?) пользователям информацию только из части базы (четверти например?)
любое, что может прочитать человек - можно спарсить программным образом.
ограничишь кол-во запросов - подключат ботнет
ограничишь капчей - напишут распознавалку
обфусцируешь данные - возьмут рендеренный DOM
против любого лома есть прием, вопрос разве что в стоимости реализации защиты и средства её преодоления.
против любого лома есть прием, вопрос разве что в стоимости реализации защиты и средства её преодоления.то есть самое надёжное - поделить стоимость базы на кол-во запросов, которые надо сделать, чтоб всю её скачать, и затем установить каждый запрос платным, по цене, полученной выше.
других вариантов просто нет?
Могу и это сделать, только это немного скучно и муторно.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
других вариантов просто нет?другой вариант - увеличение трудоемкости:
добавление ловушек,
ограничение кол-ва доступа на 1 аккаунт,
добавление случайного "шума"(вариабельности) при генерации для усложнения парсинга,
усложнение протокола между браузером и серверов (данные отдаются через ajax, а не напрямую
отдача данных малыми порциями (также при помощи ajax)
и т.д.
добавление ловушек,вот это хорошая идея. Добавлять недостоверных данных при подозрениях на скан. Но всё равно обходится статистически. Вон ту же самую рекапчу сколько не кормят дезинформацией, а гугл всё равно пользу извлекает
http://www.sur-base.ru/water-base/index.php?r0=-1&namefi...
http://www.sur-base.ru/water-base/index.php?r0=0&namefil...
http://www.sur-base.ru/water-base/index.php?r0=2&namefil...
Добавлять недостоверных данных при подозрениях на скан.при срабатывании ловушки аккаунт банится на всегда, на время или до телефонного обращения, что здорово повышает трудоемкость.
при срабатывании ловушки аккаунт банится на всегда, на время или до телефонного обращения, что здорово повышает трудоемкость.дезу сливать выгоднее.
дезу сливать выгоднее.с дезой проблема с ложным срабатыванием.
Так-то реальный клиент позвонит, не переломится, и устроит бучу, что его забанили, а если ему скормить дезу, то это чревато всякими разными нюансами.
с дезой проблема с ложным срабатыванием.а кому это проблема? Как тут предлагалось знатоками картографических сервисов - можно просто сколько-то промилле ложных данных подсовывать, рыбинское водохранилище там дублировать и т.п. Они важны для пренебрежимо малого количества пользователей. Так и тут. Процент ложного срабатывания пренебрежимо мал, если рассматривать с точки зрения репутации и привлечения пользователей, а для чего ещё беслпатные аккаунты созданы? Платные аккаунты, понятно дело, банить.
на бесплатных аккаунтах, как тут уже выше говорили, лучше просто не давать всю инфу, а давать только часть
Ешё можно перебирать по выпадающим спискам, можно даже без фильтра на название.
При это запросы "названия" и "руч" дают перебор, что может скрыть несколько записей.
Могу и это сделать, только это немного скучно и муторно.но ведь до этого кода ты не дошел?
ты сделал пустой запрос, увидел число, его и обзначил.
Основная цель движухи была в том, чтобы уменьшить возможность простой 100% скачки всего массива. Чтобы если чел и скачал, то простым путем он бы скачал только 99% инфы, а 1% бы просто пропустил-не додумал, как его выкачать.
Проект бесплатный, в этом то и его особенность, делать платным запросы-ограничивать их количество не хотелось бы
И да, спасибо всем отметившимся, очень позначательно (для меня, по крайней мере) получилось
то простым путем он бы скачал только 99% инфы, а 1% бы просто пропустил-не додумал, как его выкачать.редкий пользователь будет разбираться - в базе есть 99% инфы или 100%, а если уж разобрался, то укажет на это несоответствие исполнителю, и тот докачает и оставшийся 1%
то простым путем он бы скачал только 99% инфы, а 1% бы просто пропустилесли атакующий пропустил 1% инфы, то как её сможет найти честный пользователь?
Мне давно проще написать лишний запрос с регэкспом, нежели чем строить предположения о внутренней структуре базы.
По своему опыту могу сказать, что несколько затрудняют скачку хитрые сессионные куки. Если в дом смотреть надо. Но это все тоже просто немного отдаляет результат, но отнюдь не делает его достижение невозможным.
Что сильно может помешать - бан нафиг айпишника если сессия превысила какое-то определенное колво хитов. Мне например тогда тупо станет лениво экспериментально подбирать оптимальные лимиты для скачки. Но упорному челу это тоже не помешает.
Я не знаю, конечно, как там качают базы все, но я давно по максимуму эмулирую действия пользователя.а какой библиотекой ты кравлишь?
Апачевский httpclient
а он умеет в javascirpt?
Или если критичен пефоманс, то в сторону какого-нить rhino с браузерным енвайронментом.
а если кто-то умный готовит текст таким образом, что каждый абзац - это два разных объекта в DOM, наложенные друг поверх друга, где первый нечётные буквы делает прозрачным цветом, а второй - чётные, образуя таким образом из двух обфусцированных кусков визуально один текст. Такое чем лучше парсить?
"Чтоб само" можно конечно делать принтскрин и потом ocr'ить, но это вряд ли получится проще.
http://www.sur-base.ru/water-base/?show_obj=151880&key_s...
У меня получилось 151854 объектов, еще что-нить есть?
вот это хорошая идея. Добавлять недостоверных данных при подозрениях на скан. Но всё равно обходится статистически. Вон ту же самую рекапчу сколько не кормят дезинформацией, а гугл всё равно пользу извлекаетВсе эти ухищрения трудоемкие, т.е. увеличивают стоимость, а обходятся в лоб перебором. Надо смотреть соотношение затрат на рост сложности взлома.
чтобы сделать заключение о достаточно простом процессе выкачки.
Ну и в целом, там все идентификаторы предсказуемы, а значит
и извлекаются за небольшое время. Далее вот такое
for n in $idlist; do ftp -o - "http://www.sur-base.ru/water-base/index.php?r0=$n&r1=-1&namefilter=&placefilter=&wordone=0&search=%CF%EE%E8%F1%EA" > $n.html; done
не вытягивает всего-навсего пять-восемь страничек, это уже почти
весь указатель рек. Остаётся дописать третий уровень, и всё.
На мой взгляд, вы занимаетесь ерундой.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
не вытягивает всего-навсего пять-восемь страничек, это уже почтиэти "пять-восемь" как раз и прятались, пилотно, чтобы посмотреть, найдутся они или нет.
весь указатель рек.
при желании их можно превратить и в пять тысяч.
Остаётся дописать третий уровень, и всё.
а потом уровень четвертый, пятый, жестой и так пока не надоест?
Находил так:
http://www.sur-base.ru/water-base/?show_100=1000000000000
http://www.sur-base.ru/water-base/?show_100=219000083
http://www.sur-base.ru/water-base/?show_100=218200038
и тд.
Выдало вместе со всеми этим твоими спрятанными объектами.
но ведь до этого кода ты не дошел?Он не дошёл и другие, т.к. зачем им этим заниматься? Какой стимул для них? За это не заплатят, ещё мог быть стимул в том, что задача интересная, но это тоже не так, поэтому никто особо и не напрягается.
ты сделал пустой запрос, увидел число, его и обзначил.
метод защиты неуловимого Джо
Выдало вместе со всеми этим твоими спрятанными объектами.но ведь это не так
За это не заплатят, ещё мог быть стимул в том, что задача интересная, но это тоже не так, поэтому никто особо и не напрягается.то есть за написание этого поста тебе заплатили? ты так говоришь, будто бы все, что ты делаешь в жизне, ты делаешь или из-за денег или из-за интереса
а какой стимул кроме интереса или денег по-твоему может быть в этом случае?
я понимаю, что она может быть неинтересна для тех, кто действительно разбирается, но как показало обсуждение, есть среди отвечающих и те, кто думает, что он разбирается, а на самом деле-ошибается в этом.
есть среди отвечающих и те, кто думает, что он разбирается, а на самом деле-ошибается в этом.да, это ти
+ твоя излюбленная манера общения, мол вы все тут не понимаете нифига, еще больше уменьшает желание смотреть на твою задачу
мол вы все тут не понимаете нифигада окстись
я изначально признаю себя в этой теме неразбирающимся. ну а остальных отметившихся в теме можно разделить на 3 группы:
1. флудеры
2. подумал, что разбирается, ошибается
3. разбирается.
Третим - большое спасибо, показали-рассказали. Спасибо за потраченное время и разъяснения.
Вторым - тоже спасибо, как раз на них и была расчитана предлагаемая защита, как показал эксперимент - торопышки купятся и сядут в лужу.
Первым - тоже спасибо, надеюсь, что листая тему, узнали для себя что-то новое
я изначально признаю себя в этой теме неразбирающимсяно при этом почему-то считаешь, что можешь отличить тип "подумал, что разбирается, ошибается" от "разбирается."
Вторым - тоже спасибо, как раз на них и была расчитана предлагаемая защита, как показал эксперимент - торопышки купятся и сядут в лужу.Здесь весь контингент работает и не хочет писать код просто потому, что ты спросил. Твою базу можно выкачать, твой программист прав, не ходи больше в наш раздел - иди меряй реки.
то есть за написание этого поста тебе заплатили? ты так говоришь, будто бы все, что ты делаешь в жизне, ты делаешь или из-за денег или из-за интересаПочему заплатили? Мне может быть интересно общаться.
А какие ещё стимулы могут быть по твоему? Ну я ещё могу придумать всякие роды принуждения, но это к делу не относится вроде.
Что страшного в том, что кто-то скачает всю твою базу? Какие угрозы ты в этом видишь?
да мания величия там, небось: хочет, чтобы все знали, что это именно ОН собрал эту базу. А так не ровен час кто-нить ее скачает и выложит от своего имени.
А так не ровен час кто-нить ее скачает и выложит от своего имени.Зачем это кому-то делать, если база Тукка открыта для всех и так?
У такого действия должен быть смысл. Может он есть, я и спрашиваю, поскольку пока его не вижу.
будто бы все, что ты делаешь в жизне, ты делаешь или из-за денег или из-за интересато есть ты считаешь, что твои данные кто-то будет пытаться выкачать исключительно из-за любви к рекам?
но при этом почему-то считаешь, что можешь отличить тип "подумал, что разбирается, ошибается" от "разбирается."посмотри второй ответ в этой теме. чел посчитал, что он разбирается-и ошибся
посмотри второй ответ в этой теме. чел посчитал, что он разбирается-и ошибсяБля, да никто из отметившихся в теме на твою "задачу" более 5 минут не потратил. Тебе лишь написали об идеях, которые, будучи полностью реализованными, позволят скачать всю твою базу. Во время написания бота программист при необходимости потратит несколько дней.
Этот самый второй ответ давался от балды на авось, а ты оцениваешь его так, как будто на него было потрачено несколько человеко-дней. Ещё раз повторю, что твой программист был прав.
Тебе лишь написали об идеях, которые, будучи полностью реализованными, позволят скачать всю твою базу.да, я это понял.
вопрос тебе - если перед тобой будет стоить цель скачать базу целиком, ты начнешь с простого варианта скачки или сразу будешь предполагать наличие сложностей и тратить несколько дней на разработку проги?
вопрос тебе - если перед тобой будет стоить цель скачать базу целиком, ты начнешь с простого варианта скачки или сразу будешь предполагать наличие сложностей и тратить несколько дней на разработку проги?Зависит от того, что мне нужно. Иногда мне нужен какой-то объём данных для тестирования или каких-то исследований, тогда я делаю самое быстрое решение, которое даёт скачать всего 10% страниц с данными. Иногда нужен полноценный механизм, тогда я могу потратить несколько недель, чтобы не просто забрать все данные, но и регулярно обновлять информацию по ним и подстраиваться под изменения на сайте.
В твоём случае работа, скорее всего, будет задана какому-нибудь студенту подешевле. Он может оказаться ленивым и выполнит задачу на "отвяжитесь". После этого заказчик может обнаружить недостачу и попросить доработать, тогда будет скачана вся база. А может и не обнаружить, тогда... не знаю, что должно быть, т.к. ценность этих данных оценить не могу.
посмотри второй ответ в этой теме. чел посчитал, что он разбирается-и ошибсяОн не ошибся а протранслировал ответ твоей базы. Или она намеренно выдаёт неверную информацию о числе объектов? Т.е. ради мнимой защиты вы обманываете всех пользователей?
посмотри второй ответ в этой теме. чел посчитал, что он разбирается-и ошибся
"чел из второго ответа", наверняка "разбирается" лучше тебя с твоим разработчиком вместе взятых
а тебе стоило бы высказывать поменьше оценок в областях, в которых ты не шаришь...
хотя, кому я это говорю
Ну, хочется ему верить, будто его база "защищена," пусть верит.
Судя по жлобскому отношению к защите таких данных,
ему и помогать-то не стоит.
---
"Quae medicamenta non sanat, ferrum sanat,
quae ferrum non sanat, ignis sanat."
это ты как эксперт сказал, разбирающийся лучше всех троих?
Судя по жлобскому отношению к защите таких данных,ты идиот - это все, что я могу сказать
ему и помогать-то не стоит.
эта база открыта уже несколько лет, любой желающий мог её скачать и сделать что-то свое, и никакой защиты там не было. Просто пришла одна шальная мысль, которую захотелось проверить, проверили...
особенно рассмешил насчет жлоба
Не вижу смысла объяснять ему чего-либо дальше.
как будто бы ты пытался
Но вообще спасибо тебе - благодаря твоему первому ответу у меня есть надежда, что скачивать эту базу будет такой же самоуверенный талант, который таки не сможет сделать это качественно
это ты как эксперт сказал, разбирающийся лучше всех троих?где логика? Оценивать профессионализм можно и по косвенным признакам
ну я вот и хочу от него услышать, как он это оценил
Скажи, твои "скрытые" данные обычный пользователь может получить так или иначе заполнив форму?
да.
Тогда я могу предположить, что "все" данные показываются только если указаны все 4 параметра. Следовательно надо написать небольшой скрипт, который пробежится по всем значениям всех параметров, причем диапазоны значений можно посмотреть и вручную - их не так много. Также вероятно, что есть какая-нибудь хитрость с куками, но, полагаю, это тоже не сложно выяснить.
"все" данные показываются только если указаны все 4 параметра.про какие 4 параметра ты говоришь?
Не 4, а 5, да. r0...r4
> что скачивать эту базу будет такой же самоуверенный талант,
> который таки не сможет сделать это качественно
Тебе уже объяснили, почему эту базу почти никто не будет скачивать.
Более того, ты и сам мог бы об этом догадаться, раз уж сам признал, что
> эта база открыта уже несколько лет, любой желающий мог её скачать
> и сделать что-то свое, и никакой защиты там не было.
Сколько ты готов потратить на то, чтобы я тебе показал,
как это сделать качественно? Видишь ли, потратить пять минут ---
это развлечение, а потратить не менее, чем день на какую-то
непонятную и неинтересную муть --- работа.
---
"Для того, чтобы не пройти мимо цели, иногда необходимо пойти ко дну."
Тебе уже объяснили, почему эту базу почти никто не будет скачивать.тем не менее, её уже скачивали, причем неоднократно.
другое дело, что она постоянно меняется-дополняется, поэтому тот кто скачивает - бежит за впередиидущим паровозом.
Сколько ты готов потратить на то, чтобы я тебе показал, как это сделать качественно?
тебе - не более 250 рублей в час, меньше вроде как стыдно, в макдачной столько можно заработать.
услуги , , я бы оценил существенно дороже
Тебе же уже сказали, что серебренной пули нету - есть только различные способы усложнить жизнь программисту.
Может твой метод и в правду хорош, а может лучше потратить деньги, которые ты платишь своему программисту на реализацию более надёжной защиты.
Заниматься по приколу серьёзным обходом твоей защиты никто на этом форуме не будет - максимум пол часа потыкаются. Аудит безопасности из этого никакой.
И что?
> другое дело, что она постоянно меняется-дополняется,
> поэтому тот кто скачивает - бежит за впередиидущим паровозом.
Можно подумать, это всё сильно усложняет.
> тебе - не более 250 рублей в час, меньше вроде как стыдно
Вот за подобное жлобство тебе и не стоит ничего объяснять.
Если найдёшь кого-либо, кто тебе сделает аудит бесплатно или
хотя бы за 2,5 тысячи в час, расскажи, я посмотрю на это чудо.
В общем, развлекайся дальше с защитой своего студенческого поделия.
---
"Люди недалёкие обычно осуждают всё, что выходит за пределы их понимания."
это ты как эксперт сказал, разбирающийся лучше всех троих?на счет КОХТПЫ не знаю, но лучше чем ты - точно, чем твой программист - весьма вероятно
ты не знаешь уровень КОХТПЫ, не знаешь уровень другого прогера, но делаешь какие-то выводы? тщеславие - твое второе имя
Вот за подобное жлобствоэто не жлобство, это реальная оценка твоих трудозатрат
это не жлобство, это реальная оценка твоих трудозатрат… жлобом.
умеющим считать деньги и платящего по работе, а не по понтам
умеющим считать деньги и платящего по работе, а не по понтамНу твой программист какую-то работу, конечно, проделал. Только вот польза от неё сомнительна.
Ну твой программист какую-то работу, конечно, проделал. Только вот польза от неё сомнительна.
А Тукк ему много и не заплатил!
ты выходишь, протягиваешь в руке конфетки и спрашиваешь:
- сколько у меня конфеток?
тебе отвечают:
- 10
твоя реакция:
- а вот и неугадали, 11. Я еще одну в кармашек заныкал.
Изначально ты задавал вопрос: Можно ли скопировать сайт? и закономерный ответ на него: можно
Дальше ты соскочил на вопрос: Можно ли скопировать инфу с сайта на 100%?, но это уже другой вопрос. И его уже необходимо отдельно ставить.
Изначально ты задавал вопрос: Можно ли скопировать сайт?ты как-то странно прочитал первую тему. Я нигде и никогда не писал о невозможности скачки.
Изначальный вопрос был такой
получится ли определить количество объектов в базе данных
Может быть ошибочно, но ход моих мыслей был такой - базу можно скачать простым способом и сложным. Понять разницу между этими двумя способами можно только увидев различие в количестве скачиваемых объектов - поэтому и задавался изначальный вопрос.
вот как бы и все, не стоит придумывать то, чего не было.
получится ли определить количество объектов в базе данныхслишком неопределенный и некорректный вопрос.
Во-первых, о каких объектах, вообще, идет речь?
во-вторых, кол-во объектов в БД выяснить нельзя, можно лишь установить сколько объектов выводится на сайт
Не понятно только, что вы к нему прицепились не по-существу.
База абсолютно открыта, скачать её может кто угодно, да и нехай качают. Просто стало в какой-то момент интересно, скачивающий, применив простой способ скачки, будет думать о возможных ловушках-подводных камнях или успокоится? Самый примиивный способ понять, что скачал не все - посмотреть количество скачанных объектов- рек. То есть, если пустой запрос выдает, что в базе 200 тысяч, а скачал ты 140 тысяч, то наверное возникнет мысль, что скачал не все и тогда уже будешь ковыряться, пытаясь найти спрятанное.
Но если пустой запрос и простая скачка выводит одно и тоже количество речек - будет ли не особо тщательный прогер ковыряться? в этом то и была суть эксперимента, странно, что это приходится повторять несколько раз.
Тем, кто увидел желание сделать неломаемую защиту - ну что сказать, фантазия хорошая у людей, жить наверное легко.
Вообще хотел сказать спасибо тем, кто хоть что-то по делу написал, давал советы-рекомендации, очень интересно было и познавательно.
ЗЫ. Кстати, пока стоял в пробке сегодня, вроде как придумал, как можно избежать (частично) поиска путем подбора букв, что здесь и предлагали предполагаю, что можно сделать так, что будет спокойно осуществляться поиск по слову "волга", но не будет она искаться по части -олг- или -ол- . То есть в данном случае вряд ли получится полностью эмулировать действия пользователя частично, ну а делать это полностью - уж больно огромное число возможных вариантов существует
можно просто перебрать по всем состояниям формы:
берем i-ый бассейновый округ
берем j-ый речной бассейн
берем k-ый участок
берем l-ый тип
нажимаем поиск - получаем список объектов
переходим по ссылкам - получаем всю инфу
повторяем для всех i, j, k, l
да, долго
да, надо парсить DOM
но такой бот не сломается, пока вы не поменяете механизм выдачи для пользователя
чего ты прицепился к этим самым переборам под именигммм, да это не я прицепился, это указали как один из самых реальных вариантов.
ну и опять таки, если вернуться к существу вопроса - будешь ли ты применять такой долгий и муторный способ скачки, если будешь думать, что скачал все гораздо простым способом?
Наверное, будешь, если почувствуешь, что скачал не все - и тогда вопрос, как ты это почувствуешь?
ну и опять таки, если вернуться к существу вопроса - будешь ли ты применять такой долгий и муторный способ скачки, если будешь думать, что скачал все гораздо простым способом?это не долгий и муторный
это не долгий и муторныйтвои слова
да, долго
да, надо парсить DOM
Согласись, это гораздо сложнее, чем простой и очевидный вариант
просто скачать все странички с http://www.sur-base.ru/water-base/?show_obj=1 по http://www.sur-base.ru/water-base/?show_obj=151861
твои слова
что показывает, что ты нихуя не понимаешь
слово долго здесь используется в контексте прямых параметризованных запросов
скачивание базы будет более долгим
про муторно - тоже самое
в контексте написания краулера - не долго и не муторно
Согласись, это гораздо сложнее, чем простой и очевидный вариант
не могу согласиться, потому что это не так:
просто скачать все странички - это надо анализировать запрос, чтобы его параметризовать
не могу согласиться, потому что это не так:хорошо, ты попал в ту малую часть прогеров, которые пойдут другим путем.
спасибо за пояснения
Но если пустой запрос и простая скачка выводит одно и тоже количество речек - будет ли не особо тщательный прогер ковыряться? в этом то и была сутьТо есть ты и честных пользователей обманываешь? Какой-то не очень клевый трейдофф. Доверие к такой хитрожопой бд будет как бы не очень. Особенно если ты продолжишь с поиском играться.
То есть ты и честных пользователей обманываешь?в чем я обманываю? ты второй человек в этом треде, кто меня в этом обвиняет - может сможешь сформулировать, в чем обман?
Как в чем. Очевидно, выдаешь заведомо некорректные данные.
ты или сейчас меня на тро-ло-ло пытаешься развести, или у нас с тобой разное понятие о честности.
Я ни в коем разе не обманываю пользователя, который приходит и вводит в поиск слово "волга" - он получает результат. Но когда он запускает пустой поиск - какой результат он хочет увидеть? делается это не для работы, а для баловства - так почему же в ответ я должен быть с ним честным? хочется баловаться-не вопрос, только надо помнить, что эта игра обоюдной может быть
так почему же в ответ я должен быть с ним честным?По поисковому запросу "во" выдаются все названия, которые начинаются с "во" или только часть из них?
Я ни в коем разе не обманываю пользователя, который приходит и вводит в поиск слово "волга" - он получает результат. Но когда он запускает пустой поиск - какой результат он хочет увидеть? делается это не для работы, а для баловства - так почему же в ответ я должен быть с ним честным?Ну-ну. Что за хрень. Может ему интересно сколько у тебя данных в базе или ещё что? А так пользователь подумает что ты и ещё какие его действия за "баловство" можешь принять и опять фигню какую вывести.
Если считаешь, что пользователю эта информация не нужна, то лучше её не выводить, чем выводить ложную.
По поисковому запросу "во" выдаются все названия, которые начинаются с "во" или только часть из них?Конечно часть надо выдавать! Ведь даже идиот знает, что "Волга" точно есть и найдёт её отдельно!
Запросишь во - выдаст все значения, которые с во
Кроме того, ты предлагаешь этим не ограничиваться, и еще на определенные запросы поиска выводить неполные результаты.
Иди уж до конца тогда, если у пользователя больше 100 запросов в час просто начинай выводить какую-нибудь белиберду вместо реальных данных. А то что за хрень - чувак или бот или играется, чего ему правильные данные выдавать...
Вообще "играть" со своими клиентами допустимо наверное только в непрофитной организации типа твоей. Если ты будешь играть с клиентом, который тебе платит - потеряешь деньги.
Ко всему прочему, в твоей ситуации само желание защитить данные от скачивания, кража которых не приносит тебе убытка - непонятно.
Может ему интересно сколько у тебя данных в базе или ещё что?что ему с того, в базе 151430 или 151340? ты сейчас пытаешься придраться по совершенно несущественному вопросу.
он или зашел в базу по делу, тогда ему интересно совсем другое, конкретная информация - или же он зашел праздно время провести, тогда в принципе пофиг, что он там увидит
единственный вариант, когда человека интересует, сколько данных в базе - это когда скачали и сравнивают, все скачали или нет. Если можешь назвать еще реальные, а не из марсианских хроник варианты, буду признателен
Ты понимаешь, что похоже твоя настоящая цель не данные защитить, а просто эго свое потешить?
Почему ты считаешь заведомым баловством желание узнать количество рек?да потому что никто этого не знает даже моя база далеко неполная, так что ничего ему это число не даст, просто ничего. Количество рек в базе - это количество российских рек из государственного водного реестра СССР (большая часть) плюс энное количество добавленных вручную плюс энное количество водных объектов из других источников, так что это число ни о чем.
Если ты будешь играть с клиентом, который тебе платит - потеряешь деньги.
мне никто не платит. база - бесплатная.
в твоей ситуации само желание защитить данные от скачивания, кража которых не приносит тебе убытка - непонятно.
гммм, я повторю в четвертый раз, надеюсь, он будет последним - не шла речь о защите данных от скачивания. Шла речь об эксперименте, суть которого заключается в том, что если будет висеть база в свободном доступе, открытая для скачки и появится желающий её скачать, будет ли этот человек скачивать простым-примитивным способом (от которого можно скрыть некоторое количество информации) или же сразу приступит к написанию сложного скрипта, который выкачает все что можно и нельзя? Побудить чела к созданию более сложной скачки может только понимание, что простая скачает не все - а выяснить это можно, тупо сравнив, что скачалось 151 тысяча рек, а в базе их 152 тысячи.
Я почему и просил в изначальном посте, сделать попытку определить количество рек - часть людей пошла по простому пути, это показывает, что не так уж я и ошибался в своем предположении.
Если можешь назвать еще реальные, а не из марсианских хроник варианты, буду признателенТы лучше скажи зачем выводить ложь вместо того, чтобы ничего не выводить?
Ты понимаешь, что похоже твоя настоящая цель не данные защитить, а просто эго свое потешить?с чего ты решил, что моя цель - защитить данные?
ты думаешь, с этой целью я запостил объяву на форуме мгу, в разделе, где каждый первый может её скачать (если сочтет нужным)?
Ты лучше скажи зачем выводить ложь вместо того, чтобы ничего не выводить?назовешь мне причину, зачем пользователь по делу может вводить пустой запрос и я отвечу на твой вопрос
назовешь мне причину, зачем пользователь по делу может вводить пустой запрос и я отвечу на твой вопросИнтересно насколько большая база.
Окей. То есть мы имеем дело с базой, которая если немного налажает, то никто не заметит, так? Ну и в чем понт тогда того, что кто-то "простым" скачиванием получит базу идентичную только на 99.9%? Никто же кроме тебя и не заметит, верно? А если заметит - то пойдет и докачает, верно?
В итоге предположение о том, что идея защищает от 100% скачивания неверна. Несколько уменьшает вероятность, да, но и только. При этом 99.9% данных скачивается всегда. Не самый лучший способ защиты каких бы то ни было данных на мой взгляд.
Поэтому возможно ты там конечно и радуешься, что нашел нетривиальный способ решения задачи, об которую многие зубы обломали... Но реальность такова, что защищен ты непонятно от чего и непонятно с какой целью. Поэтому всем в этом топике и смешно.
Ты бы мог, например, открыть только часть базы, где перечислены основные, например самые крупные, объекты, а всякая мелочь исключена. И за полные данные просить деньги. Или иначе ограничивать доступ. Только чтоб пользователь понимал, что происходит.
Возвращаясь к эксперименту - да, скорее всего много людей при скачивании в первый раз потеряют 0.1%. Если твою задачу это решает, то окей как бы, но никому кроме тебя непонятно...
Интересно насколько большая база.и как этот интерес удовлетворить согласно твоему предложению?
Ты лучше скажи зачем выводить ложь вместо того, чтобы ничего не выводить?
Сейчас при пустом запросе выдается большое число, да, оно немного неверное, но показывает, что база большая.
По твоему совету, на пустой ответ должна выскакивать пустота - удовлетворю я интерес?
так что давай другой вариант придумай, этот совсем не катит
Поэтому возможно ты там конечно и радуешься, что нашел нетривиальный способ решения задачи, об которую многие зубы обломали...единственное, чему я радуюсь - это что примерно угадал с психологие скачивающего.
то есть, если попадется торопыжка и недоучка, то весь массив он не скачает - такое у меня было предположение и оно в этом треде подтвердилось. все, других целей не было
По твоему совету, на пустой ответ должна выскакивать пустота - удовлетворю я интерес?Нет но, я предпочитаю, что когда мне что-то выводят, то это не заведомая ложь.
Можешь теперь и на наш вопрос ответить - с какой целью это все вообще было затеяно?
Ну и в чем понт тогда того, что кто-то "простым" скачиванием получит базу идентичную только на 99.9%? Никто же кроме тебя и не заметит, верно? А если заметит - то пойдет и докачает, верно?нет, не верно.
я предпочитаю, что когда мне что-то выводят, то это не заведомая ложь.откуда ты узнаешь, что это заведомая ложь?
еще раз - что тебе с того, содержится в базе 151340 или 151430 объектов?
если только то, что в одном случае заведомая ложь - ну это уже паталогия. Предствляю, как тебе тяжело рекламу смотреть, да и вообще с людьми общаться, ведь у тебя такая нестандартная реакция на ложь
с какой целью это все вообще было затеяно?Я ни в коем разе не придираюсь к словам, но все таки - поясни пожалуйста, что ты под словом ЭТО понимаешь? движуха с сокрытием небольшой количества информации? или пост на форуме? или последующее обсуждение?
откуда ты узнаешь, что это заведомая ложь?Ты знаешь, что это заведомая ложь. А мне не нравится, что меня умышленно обманывают. Да, я могу не заметить сначала, но это не повод меня обманывать.
если только то, что в одном случае заведомая ложь - ну это уже паталогия. Предствляю, как тебе тяжело рекламу смотреть, да и вообще с людьми общаться, ведь у тебя такая нестандартная реакция на ложьРекламу не люблю смотреть, да. И что?
А с людьми что? Тебя все обманывают вокруг и тебе это нравится?
это - "движуха с сокрытием небольшой количества информации?"
А мне не нравится, что меня умышленно обманывают.поэтому предлагаешь при пустом запросе выдавать "ничего"... но ведь это же обман, не?
то есть, если попадется торопыжка и недоучка, то весь массив он не скачает - такое у меня было предположение и оно в этом треде подтвердилось. все, других целей не было
Это мы поняли. Профит то этого достижения какой?
поэтому предлагаешь при пустом запросе выдавать "ничего"... но ведь это же обман, не?Я не говорил, что нужно выдавать что ничего нет. Есть разные варианты, например: "некорректный запрос".
Я не говорилну вот, взял и соврал на пустом месте
твои слова
зачем выводить ложь вместо того, чтобы ничего не выводить?
Как вариант "некорректный запрос" поможет узнать пользователю, насколько большая база - ведь именно это он хочет сделать, по твоему разумению?
ну и вообще - прихожу к мнению, что ты тупо тролишь.
Профит то этого достижения какой?удовлетворил свое любопытство
денег на этом зарабатывать не планировал, чего нет, того нет
ну вот, взял и соврал на пустом местеЯ не говорил "выводить ничего". Я говорил "ничего не выводить" в смысле не выводить информации о том сколько объектов.
твои слова
Как вариант "некорректный запрос" поможет узнать пользователю, насколько большая база - ведь именно это он хочет сделать, по твоему разумению?А я не говорю, что это хороший вариант. Не выводить число записей плохо и может быть даже отвратительно в некоторых случаях. Но выводить неправильное число записей с моей точки зрения ещё хуже.
Но выводить неправильное число записей с моей точки зрения ещё хуже.хорошо. у меня другая точка зрения, надеюсь, ты не будешь возражать, что она у меня может быть и может отличаться от твоей?
Ну окей. А про колво записей - ну выводи примерное число...
Побудить чела к созданию более сложной скачки может только понимание, что простая скачает не все - а выяснить это можно, тупо сравнив, что скачалось 151 тысяча рек, а в базе их 152 тысячи.
Тукк, прости, но ты ведешь себя в этом посте, как ребенок: хочу чего-то, потому что это прикольно.
Побудить человека к сложной скачке может побудить только понимание, что ему нужна ВСЯ база.
Исходя из характера твоей базы(или не твоей, а какой-то еще) вариантов не так уж и много
1. База качается исходя из досужего интереса, что-то по быстрому чекнуть, получить какой-то базовый профит, в общем для не слишком серьезных целей. Тогда ее не будут качать серьезно, потому что ну нахера тратить на это время, если это не принесет профита?
2. База содержит в себе номера и CVV коды банковских карт или, иными словами - представляет собой ценность КАЖДАЯ запись в частности и целостность базы в целом. Тогда человек, который формирует запрос на "спиздить" базу будет заинтересован в том, чтобы объяснить программисту (в вырожденном случае себе что искать надо аккуратно и вдумчиво.
Ты же пишешь все эти посты про какого-то сферического среднего программиста в вакууме, который ради прикола качает твою базу. Нет таких. За каждым действием мотив стоит, от которого и зависит линия поведения.
Вообще, такое ощущение, что у тебя нет реального понимания о наличии/отсутствии ценности скрываемых данных.
В остальном правильно написали - существует целая куча стратегий сокрытия информации - от хэширования индексов и до ограничения числа сессий, на основе эвристических оценок качества запросов и для каждой из них существует способ проработать и ее тоже. Вопрос лишь в относительной стоимости.
P.S. выводить заведомо неверный результат - идеологически и принципиально неприемлемый прием, который нельзя обосновать вообще никак.
Не выводить "количество рек", или просить уточнить запрос, не выводя в респонсе ничего о выборке, если в выборке больше 1000 элементов - архитектурное обоснованное решение, основанное на понимании того, что именно ты предлагаешь пользователю.
P.P.S и парой страниц ранее ты спрашивал о том, когда человеку может понадобиться пустой запрос. А это ты сам должен ответить - может или не может? Или вы прикрутили сверхбольшие выдачи (вернее просто не открутили их потому что "не, ну а вдруг?".
Если ваш модуль должен отвечать на запрос "выдай мне все реки такого-то речного бассейна", то не отвечать на запрос о ВСЕХ реках - идиотизм.
Если не должен, то количество ответов в одной выборке не может быть больше 100-1000 и вполне уместно отвечать "уточните поисковый запрос"
хочу чего-то, потому что это прикольно.да, так оно и было хотелось поковыряться в психологии других людей, ссори, если побеспокоил кого.
выводить заведомо неверный результат - идеологически и принципиально неприемлемый прием, который нельзя обосновать вообще никак.
Глупый конечно вопрос - а почему? Что дает знание, что в базе 151430, а не 151340 объектов?
И да, я полностью согласен с тобой, что надо бы вводить выдачу "уточните параметры запроса". И спасибо за подробный ответ. Денег от меня ты не получал, интереса писать у тебя не было - значит, вполне может быть и какой-то третий мотив, который отрицает большинство отметившихся
вполне может быть и какой-то третий мотив, который отрицает большинство отметившихсяон называется "for the greater justice" или же "в интернете кто-то неправ"
Оставить комментарий
iSom
Заранее извиняюсь, если не в тот разделСуть эксперимента - есть у меня онлайн база (по рекам России в свое время очень волновал меня вопрос несанкционированной скачки всего массива информации. Придумали и реализовали с прогером-разработчиком алгоритм, который, как мне видится, позволит избежать 100% скачки и полного недобросовестного копирования этой базы; прогер, хоть и реализовывал задачку, высказывает определенные сомнения. Основная мысли в его сомнениях - если скачивающий будет знать количество объектов-рек в этой базе, то он сможет просчитать и вскрыть алгоритм сокрытия инфы; поэтому попробовали сделать так, чтобы количество объектов правильно определить было бы невозможно. Собственно, вопрос к разбирающимся - получится ли определить количество объектов в базе данных http://www.sur-base.ru/water-base/ ? понимаю, что эта возня может занять какое-то время, но может попробует кто, ради спортивного интереса (в перерывах между зарабатыванием 150-400 тыров )