Answer the question
In order to leave comments, you need to log in
How to make a secure database with digital activation keys on the web?
Give, please, infu, in which direction to look at the issue described below.
A small company wholesales activation keys for video games and software (Windows, etc.), all digital. In order to sort it out somehow, how I managed to make a database for all the keys on MS Access. There are statuses, names, names of invoices from suppliers, dates of purchase, etc., but in fact only I can use it, because access is complicated. I shared access to the database to the employees via Google Drive, they managed to break it in a couple of days. Either there is a problem with synchronization, or they have done something wrong. It's good that there was a backup.
Now I have to spend uploading manually issuing or sending keys to buyers. I would like to somehow give access to the keys to my colleagues so that they can upload the keys they need and change statuses. I would really like to keep the database online as a Web resource, but I'm afraid for security. In the future, I would like to connect this base to my own store. I am not a programmer, and I do not know how to protect the keys in case the site or database is hacked. Given that access to the site, I understand that you can limit the two-factor for example. But how to hide the keys in the database if attackers get access to it?
In theory, what can be done, where to look at all? I understand that everything can be hacked, the question is how to minimize the risks and not fly into the price tag of developing a solution for a bank :)
Answer the question
In order to leave comments, you need to log in
> how I managed to make base for all keys on MS Access
If not strongly muddy relations in base it is possible to transfer it on MySQL/MariaDB. I don't know PostgreSQL, so I can't speak for it. Pull some engine or script on it for adding / deleting / editing and give employees access to it.
IMHO for a little money, a programmer for this business is not particularly difficult to find. Just don't save at all.
Apparently, you are a very narrow specialist, .. if the option of hiring a knowledgeable person does not roll, dig yourself.
I strongly advise you to throw ms access in the trash and don't remember it anymore, once this environment was one of the leaders, but now it is hopelessly outdated.
In principle, you can use the mdb storage itself for its intended purpose, without a UI, but now there is a more convenient and faster sqlite tool
Common
practices that can be used in your case: problems, reduce the possible number of errors and make it easier to maintain the system, since you do not need so much a narrow specialist for it.
Great example
- a database solely for data storage and integrity control (the database must ensure that the data in the database is always in a 'logically correct' state, i.e. there are no hanging records that are not related to anything where it is important, but there were also mandatory records, plus minimal restrictions on the records themselves .. in general, read what the sql database provides you for this)
- the interface can be written on any other platform, maybe Google, but I would not advise it, it's too complicated. It just so happened that now web interfaces dominate the world, they provide very high flexibility, relatively simple reliability (since you have to write a layer between the database and the user, this is a backend that will monitor access control) so saw the interface for the web -browser.
* Ideally, monetary tasks should also be separated into a separate system
, or at least implemented on the basis of a database and its built-in procedures, if any. Work with payments should go through a specially designed layer that does not imply that there may be wrong operations, and the system itself should deal with this control (you cannot buy a non-existent product, you cannot sell one product twice, etc.), it is good practice to build such a system in such a way so that the final summation of 'money' is zero i.e. create special 'system' accounts that should control deposits and withdrawals.
* ask yourself what is reliability and security, these concepts include a lot
Separation into independent blocks with communication through a standardized api will allow you to develop components independently, and in some cases even without being tied to a programming language, framework, or the use of server versions and types.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question