?
Solved

How to protect individual field value in a distributed FileMaker database..??

Posted on 2016-10-05
3
Medium Priority
?
121 Views
Last Modified: 2016-10-10
I have a "PayPal for FileMaker" solution I put together that uses the Scodigo PHP SmartPill plugin.

Scodigo's plugin has a license I have to buy and then I can distribute it with my solution, however, I need to find a way to hide this license key from people that I distribute my solution to, while still making it available to the solution itself so that it can run properly.

Within the solution file is a script like this:

PHPRegister('123456789', 'Product Name');

So the value 123456789 needs to be hidden from users so they can never see it, but still needs to be available to this function within the solution file that I am distributing.

Is there a way I can store the value in a container field that cannot be accessed by anything but the script, or any other way I can handle this situation?

Any information on this would be greatly appreciated.  Thanks!
0
Comment
Question by:Andrew Angell
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 25

Expert Comment

by:Will Loving
ID: 41831020
I have a number of Developer plugin licenses and as long as you've restricted the normal user privilege set to disallow access to Script editing, you can just leave the license key in the script step. Only a user with full access privileges could access it, and if you are distributing the solution as a Runtime, there is an option to entirely remove Full Access privileges from the Runtime solution.

You could enter the key in a global field and then remove the field from any layout, restrict the field access in the Privilege set, and then set the script that calls it to run with full access privileges.
0
 
LVL 11

Author Comment

by:Andrew Angell
ID: 41834551
You could enter the key in a global field and then remove the field from any layout, restrict the field access in the Privilege set, and then set the script that calls it to run with full access privileges.

Any chance you could provide a simple example of this in a bare bones DB?
0
 
LVL 25

Accepted Solution

by:
Will Loving earned 2000 total points
ID: 41835258
The attached file shows the use of a global field in a Plugin Registration script. I created a global text field called "LicenseKey", entered the key in it and then removed it from the layout. I then created a script to run the Plugin "Register" function. I'm using the SMTPit plugin as an example, but since you probably don't have that plugin installed, I commented the actual registration string so you can see how I've used the LicenseKey field in the Register function. (it would otherwise simply show "<function missing>" if you didn't have the plugin. The script is set to Run with full access privileges, which I turned on by right-clicking on the script.

Screen-Shot-2016-10-08-at-Oct-8---1..png
I also created a Privilege Sets, Standard User Restricted Field which specifically prevents the user from seeing the LicenseKey field, and also from editing layouts, scripts or value lists. If you log in as "Admin" (no password) you'll see the field. If you login as "Standard" (again, with no password) you can't access the field.

As noted above, you can simply remove the field from any layout, but to be honest,  I wouldn't even both to put it into a field in the first place. The simplest thing to do would be to simply enter the plugin LicenseKey in the plugin Registration function and then restrict any non-developer privilege sets to "Scripts: Execute Only". That prevents users from getting into the script editor at all which they would need to do in order to read the license key in the Set Variable or Set Field script step used to Register the plugin.

As long as you don't allow users to get in using the Full Access Privilege set AND the Privilege set they are using restricts script to Execute Only for scripts you should be perfectly fine including the License Key in the script step as long as the script is set to run with full access privileges.
Example-Hidden-field.fmp12
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Problem: You have a hosted FileMaker database and users are tired of having to use Open Remote or Open Recent to access the database. They say, "can't you just give us something to double-click on rather than have to go through those dialogs?" An…
Having just upgraded from Filemaker 11 to Filemaker 12 over the weekend, we thought we would add some tips for others making the same move.  In general, our installation went without incident. Please note that this is not a replacement for Chapter 5…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question