Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

creating .exe in vfp9

Status
Not open for further replies.

pusongbato0708

Programmer
Oct 21, 2012
3
PH
boss.....
need help here..i already finished my vfp project and i used inno setup to compile it..while compiling, i only choose my table folder, i exclude the form,menus,picture and report folder thus i read a thread that i can exclude those folder when i build my project. the problem is when i finished compiling my project and installed it in my laptop, and the folder is in my drive c with the .exe, uninstall, and the table folder then i tried to run the program and seemed to be okay, no error/bugs. i close the program and i tried to access my table folder in drive c, ooppppzzzz.,, everyone can edit/modified the value that are stored in my tables and not even running the program.. boss..is there anything i can do to avoid that scenario? like putting a password in the folder? my user table has encryption but i want the other tables not to be edited or modified,...

 
You can't have a DBF only editable through your exe, no. The user using your exe also uses the dbfs, and needs read/write permission. Like users need reqad/write permissions on word DOC/DOCX files. Is it really such a surprise? To have read/write permission allows deletion and/or manipulation via any other program capable to work with DBFs. The same again goes for DOC/DOCX or any other document format. If you're concerned about that, the best solution is to use a server database backend instead, but that's a major rewrite.

If you're concerned about readout of the whole data, not just the small portions your app shows or uses internally, some third party solutions mentioned by MS Knowledgebase are NetLib and Cryptor, see
If you only need to read your data internally and users don't need to add new data or change existing, you can embed tables in your exe by not excluding them from compilation. But hten, wlel, you have readonly data.

Bye, Olaf.
 
Just to add to Olaf's good advice ...

You say that "everyone can edit/modified the value that are stored in my tables and not even running the program". That's true, but they would need some software to do so. They would either need to have VFP installed on their system, or have some other program capable of editing DBFs. Is it likely that your end-users will have such software installed?

It's true that a knowledgeable user can edit DBFs with an ordinary text editor, like Notepad, but that's difficult to do correctly, and likely to corrupt the data if not done properly.

I'm afraid the situation you describe is the price you pay for using a convenient tool like VFP. For most of us, it's not a problem. In cases where it really is essential to prevent access to data from outside your application, you should use a back-end database like SQL Server in place of DBFs.

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips, training, consultancy
 
thanks for the advice...ahm. just curious if i can place a password for that folder or table...like for example for visual basic, the Microsoft access can place an password before you can open it...any system or program that was made in vfp when you run or installed it, one of the requirement of that system is the vfp software itself..so any user that is curious for that system they can easy edit the values of the table..it is okay if the system is like student information but when the system is about money matters like billing system or what ever.. it is important maybe that a user cannot access manually the table in the drive c..but if there's no way to secure that i will stick to the login security...thanks by the way for the time...godbless.....
 
No there is no security in dbfs, other than what you do on your own, eg ancrypting the data makes it unreadable to anone not having the encryption key(s), which is how Cryptor protects your data.

Access passwords don't offer a high security level, as far as I know, that may have changed since I last looked, but there are tools available to crack an MDB.

In regard of sensitive data like credit card info or billing data, the only really good protection can be made using a database server offering a lockdown of data via access rights management.

VFP does not have the part of the sql language related to such thing, there is no GRANT command in VFP. Your only level of protection of dbf files is the file access protection via NTFS folder/file permissions.

Bye, Olaf.
 
Yes, Rick, GRANT and REVOKE is already a good SQL definition, it would just need to be implemented.

In fact the technical way to do that on the sub file level (eg granting permissions to certain columns or rows only) could be implemneted as a minifilter driver.

As far as I know CRYPTOR works as such a minifilter and decrypts, once you register files with it, or does not decrypt and let any other app only see the data encrypted as it is written on disc. See
Bye, Olaf.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top