Необходима бомба замедленного действия в приложении ASP.NET - PullRequest
17 голосов
/ 19 февраля 2009

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

[Редактировать:] Только технические ответы, пожалуйста! Является ли это хорошей (или юридической) идеей - вопрос для CEOoverflow.com ; -)

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

Мой вопрос: как и где мы должны хранить дату истечения срока действия заявки?

Некоторые моменты, на которые следует обратить внимание:

  • Приложение установлено на одном сервере в офисах клиента.
  • Данные приложения хранятся в базе данных SQL Server 2005 на том же сервере. База данных была разработана нами и не используется ни для чего другого.
  • Приложение доступно только в их внутренней сети: нет доступа к приложению через Интернет.
  • В настоящее время у нас есть удаленный доступ к рабочему столу на их сервере, но мы ожидаем, что потеряем его, если что-то пойдет не так.
  • Приложение написано на .NET 2.0.
  • Безопасность обрабатывается с помощью FormsAuthentication.
  • Нам нужно иметь возможность отключить бомбу замедленного действия или легко изменить дату ее запуска (предположим, что для этого у нас все еще есть доступ к удаленному рабочему столу).
  • Сервер обычно может получить доступ к Интернету, но было бы лучше не полагаться на это.
  • Бомба замедленного действия блокирует только пользователей: она не уничтожает никакие данные.
  • Если это не сработает, клиент никогда не должен знать о существовании бомбы замедленного действия.
  • Их айтишник с удовольствием покопается в web.config или в базе данных. Он не программист, но он не боится что-то менять «просто чтобы посмотреть, что происходит». Декомпиляция или обратный инжиниринг приложения будут за пределами его возможностей.

За дополнительные кредиты, как вы думаете, насколько это нормально, если в этом случае можно положиться на безопасность через неизвестность?

[ Edit: ]

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

Ответы [ 23 ]

0 голосов
/ 19 февраля 2009

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

Я думаю, что это неправильное решение проблемы, но я понимаю, что ваша задача - делать то, что вам говорят.

0 голосов
/ 19 февраля 2009

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

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

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

Это действительно единственный способ сделать это, если вы хотите быть уверены, что они не смогут его использовать, если не заплатили. В противном случае вы должны передать на них иск или подобные угрозы.

0 голосов
/ 19 февраля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...