Блог Статьи

Стоит ли предоставлять автору модуля доступы к FTP и админке?

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

Однако, тут есть несколько важных моментов.

 

Во-первых, стоит понимать, что вы уже установили модуль от этого автора

При этом совершенно не разбираясь в коде этого самого модуля. То есть, это все те же самые опасения вида «а вдруг напакостит?!». Конечно, в случае с модулями есть модерация в площадках, есть отзывы и прочее, а вот в случае с доступами к интернет-магазину посредников нет. Тем не менее, сам факт нужно учитывать.

 

Во-вторых, нужно понимать, что именно вы хотите защитить

Пробежаться парсером по открытой части вашего сайта и собрать все данные о ценах и товарах — сегодня не такая уж и сложная задача. Так что в большинстве своем речь идет о нескольких вещах (сразу же приведу к ним комментарии).

1. Сайт сломается. В данном случае решений, как минимум, три. Первое. Клиент создает бэкап сайта и только после этого предоставляет доступ. Что позволяет даже в сложных ситуациях откатиться. Второе. В дополнении к основному интернет-магазину, так же создается аналогичный тестовый сайт, где вначале обкатываются все модули, а уже только после этого переносятся в основной сайт. И, соответственно, доступ предоставляется именно к тестовому сайту. Третье. Это вы предоставляете бэкап сайта автору, что бы он мог у себя на тестовом сервере исправить ошибку.

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

Первое решение. Вы можете сделать двух этапный подход. Первый этап, вы создаете бэкап, затем предоставляете доступы, например, к тестовому интернет-магазину. После чего проблема исправляется. Автор сохраняет к себе куски кода, позволяющие решить проблему. Затем сайт откатывается до изначального состояния (восстанавливается из бэкапа), а автор предоставляет все необходимые файлы или инструкцию для исправления ошибки, которые вы в последствии можете проверить у других людей. Однако, стоит понимать, что такое не всегда возможно. Например, если исходные коды модулей шифруются.

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

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

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

Однако, стоит знать, что в CMS, таких как OpenCart, есть возможность настраивать права доступа в админке. Таким образом, можно хоть как-то, но ограничить доступ к информации. Кстати, так часто делают сами авторы при создании демо-сайтов с демо-доступом к админке.

К сожалению, если вы предоставляете доступ к FTP, то особых решений для случая с основным сайтом интернет-магазина не имеется. Как минимум, всегда можно выполнить sql-запрос вида «select * from».

 

В-третьих, в большинстве случаев проблема кроется в определенных условиях

Возможно, у вас стоит несовместимый модуль, шаблон, сборка. Возможно, настройки сервера сделаны определенным образом. Возможно, вы ошиблись при установке модуля. Возможно, у вас уже был вирус в интернет-магазине, который все испортил. Возможно, ранее вы делали доделки в сайте и они затронули те же места, которые используются модулем. Возможно…

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

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

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

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

 

В-четвертых, многим авторам ваши данные попросту не нужны

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

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

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

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

 

Таким образом

Конечно, универсальных советов не существует и никто не сможет предоставить их вам. Ведь, как минимум:

1. У клиентов разные взгляды. Кто-то даже не задумывается об этом, кто-то наоборот подходит к вопросу «не сдавать ни миллиметра» и так далее.

2. Бывают разные авторы. Кто-то еще только начинает и поэтому легко может напортачить, кто-то наоборот очень хорошо соображает и знает тонкости, и так далее.

3. Кроме того, сами ситуации могут складываться по-разному. Например, автор подразумевает несколько решений и сразу описывает их клиенту, но так как не уверен, что их сможет выполнить клиент, то так же говорит, что может потребоваться доступ. Или другой пример, для предоставления доступа требуется немало времени (технической частью занимается вообще кто-то третий). Еще пример. Сайт не выложен в сеть (то есть еще только создается) и есть только в закрытом тестовом сервере, к которому доступ никак не предоставить. И так далее.

Тем не менее, учитывать эти четыре момента все же имеет смысл.