Как получить данные в базе данных My Winform SQL 2005 Express?

StackOverflow https://stackoverflow.com/questions/3980620

Вопрос

У меня есть приложение AC# Winform, которое использует SQL 2005 Express. Приложение создает тесты по математике и чтению и продается родителям детей школьного возраста. Родители покупают и загружают файлы SQL, содержащие тесты на моем веб -сайте, и устанавливают их в приложение (которое установлено на компьютере их ребенка).

У меня есть две проблемы безопасности SQL:

(1) Некоторые дети могут не хотеть, чтобы викторины появлялись на своем компьютере, поэтому они могут попытаться (а) удалить базу данных SQL или (b) отключить приложение, изменяя значения в базе данных.

Мне кажется, что любой, у кого есть SQL Server Management Studio Express, может легко изменить содержимое базы данных.

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

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

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

Можно ли разрешить только моему приложению доступ к базе данных SQL? Можно ли ограничить всем остальным получить доступ к нему (даже люди, использующие учетные записи администратора Windows)?

В настоящее время сценарий установки для моего приложения создает новый экземпляр Express Server SQL 2005 только для моего приложения и использует аутентификацию Windows.

Я прочитал несколько сообщений SQL Security здесь на Stackoverflow и в других местах, но я еще не могу понять это.

Это было полезно?

Решение

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

Теперь давайте пойдем с тем, что более вероятно.

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

Тем не менее, в конце концов, вам, вероятно, было бы лучше с каким -то старым старомодным запутыванием. Вместо того, чтобы использовать что -то вроде Studio SQL Management Studio, где есть свободно доступные инструменты, чтобы изменить и предотвратить появление этих тестов или любых других атак, вы создаете свои собственные форматы файлов и надеетесь, что большинство детей сдадут, когда увидят бинар Гобблди-дух.

Если они собираются отказаться от этого, многие могут сдаться на SQL Express. Тем не менее, дети довольно изобретательны, а некоторые, возможно, захотят следовать пошаговым инструкциям, которые они искали в Google, чтобы победить ваше программное обеспечение.

Похоже, вы развертываете эти тесты на экземпляры SQL Express, которые находятся на машинах, не находящихся под вашим контролем. Они больше не твои машины.

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

Другие советы

Вы можете использовать шифрование на данных викторины.

Шифровать и расшифровать строку

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

Реальный ответ заключается в том, что защита вашего приложения для всего практически невозможно. Просто подумайте об огромных компаниях и их методах защиты, Microsoft, Adobe и т. Д. У них всех есть проблема с пиратством.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top