Frage

Ich habe eine c # winform Anwendung, dass Verwendungen 2005 Express SQL. Die Anwendung erstellt Mathematik und Lesen Quiz und ist für Eltern von Kindern im Schulalter vermarktet. Die Eltern Kauf und Download von SQL-Dateien Quiz von meiner Website und installieren Sie sie in der Anwendung enthalten (die auf ihr Kind Computer installiert ist).

Ich habe zwei SQL-Sicherheit betrifft:

(1) Einige Kinder können wollen nicht die Tests auf ihrem Computer angezeigt werden, so dass sie versuchen können (a) löschen Sie die SQL-Datenbank oder (b) Deaktivieren Sie die Anwendung von Werten in der Datenbank zu ändern.

Es scheint mir, dass jemand mit SQL Server Management Studio Express leicht den Inhalt der Datenbank ändern kann.

Deshalb, was getan werden kann, diese (anders als Empfehlungen an die Eltern, dass sie lassen ihre Kinder nicht ein Administrator-Konto verwenden) zu verhindern?

(2) Meine nur Einnahmen werden der Verkauf der Tests, so dass ich von diesen Daten schützen mag, die kopiert und geteilt. Wie kann ich diese gegeben (a) zu tun, dass die Dateien von meinem Server auf den Computer des Kindes heruntergeladen werden müssen und dann installiert und (b) und dann einmal installiert ist, wohnen sie nur auf dem Computer des Kindes.

Es scheint mir, dass jemand mit dem SQL-Datenbank-Publishing-Assistenten leicht den Inhalt der Datenbank kopieren kann.

Ist es möglich, nur zu erlauben, meine Anwendung der SQL-Datenbank zugreifen? Ist es möglich, alle zu beschränken sonst darauf zugreifen (auch Menschen Windows-Administrator-Konten)?

Zur Zeit das Installationsskript für meine Anwendung erstellt eine neue Instanz des SQL 2005 Express-Servers nur für meine Anwendung und nutzt die Windows-Authentifizierung.

Ich habe mehrere SQL-Sicherheits Beiträge hier auf Stackoverflow lesen und anderswo, aber ich bin noch nicht der Lage, dies herauszufinden.

War es hilfreich?

Lösung

From a wonky hacker point of view, the parents are screwed. This is because their children have physical access to the computer. Theoretically they can attack it every which way.

Now, let's go with what is more likely.

You identified that not giving the kids administrator access makes a big difference. But if you're saying that is out of reach of most families, so is SQL Management Studio. You can make a bet that kids aren't going to go get this and install it.

However, in the end, you would probably be better off with some good old fashioned obfuscation. Instead of using something like SQL Management Studio, where there are freely available tools out there to modify and prevent these quizzes from showing up or whatever other attacks are available, you create your own file formats and hope most kids would give up when they see binary gobbledy-gook.

If they are going to give up on that, many might give up on SQL Express. That said, kids are pretty resourceful and some might be willing to follow step by step instructions they searched for on Google to defeat your software.

It sounds like you are deploying these quizzes onto SQL Express instances that are on machines not under your control. They aren't your machines anymore.

I don't want to say "you can't do what you are asking" but you are asking how to prevent someone from using administrator tools to defeat your software. I think my answer is "you can't". You have to reexamine your design or just go with the idea that most kids won't go so far.

Andere Tipps

You could use encryption on your quiz data.

Encrypt and decrypt a string

The flaw in this is your application would have to have the encryption/decryption key in its code, so someone could still gain access to it through a recompilation tool or something like reflector.

The real answer is that protecting your application for everything is nearly impossible. Just think about the huge companies and their protection techniques, Microsoft, Adobe, etc... they all have a problem with piracy.

Also, if your application is good enough for lots of people to pirate, you will most likely have a good number of legitimate sales.

Until then, I wouldn't worry about it too much, and just take a few small precautions that don't interfere with your workflow too much.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top