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

1

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

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

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

Теги:
swing

2 ответа

1

Нет. В закрытой, неизвестной среде нет дурака, чтобы сделать это. Даже с надежной системой (например, сервером PHK NTP) вы можете легко подорвать это (путем перенаправления на сервер NTP, который всегда возвращает то же время). Единственное, что вы можете надежно сделать, это отслеживать, сколько времени ваше приложение работает. Если ваше приложение не предназначено для обработки временных рядов. В этом случае вы, вероятно, можете предположить, что они точны (в противном случае инструмент бесполезен).

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню