Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
bradley_isaacs
Contributor II
Contributor II

Securing QVS files

Hey guys

Anyone know of a way to secure qvs files.  My end-goal is to protect my code from clients - not allowing them to see or edit the code. 

I currently  have the important pieces of code in qvs files.  And i dont want them to see or edit the code.  Including the code in hidden scripts works for log file purposes, but they can still get to the actual files if they want.

Any suggestions ?

1 Solution

Accepted Solutions
gsbeaton
Luminary Alumni
Luminary Alumni

Hi Bradley,

It's actually very difficult to secure your QVS code.  There are various things you can do to try to obfuscate it but a bit like JavaScript and other client side scripting languages, nothing is really ever going to be secure against the determined snooper.

If your Qlik server can call out to the web, then consider making your QVS file web accessible.  You can either secure it by IP or, by using an API key.  Something like this would work:

//Hidden Script:

Sub GetQVS(apikey)

  $(Must_Include="https://mywebservice.com/LoadScript.qvs?"&apikey);

End Sub

//Application

SET apikey = dskfjflkjlsdsdlkjfdslkjfe;

CALL GetQVS($(apikey));

You can send your client a new API key every now and then and of course you can monitor access and secure by IP using traditional web security methods.

Oh, and of course, remember to set a password on your hidden script tab.

Hope that gets you started.

George

View solution in original post

11 Replies
arvind_patil
Partner - Specialist III
Partner - Specialist III

Hi Bradley,

Please use Bradley,

Please use binary load no one can crack your logic.

Thanks,

Arvind Patil

bradley_isaacs
Contributor II
Contributor II
Author

Thanks for your response Arvind, but I need to use qvs files for maintenance purposes - we are always maintaining those qvs files

arvind_patil
Partner - Specialist III
Partner - Specialist III

Hi,

Please Follow below steps:

Qvs is a Qlikview script file what we write in a edit script(just copy and paste it in notepad and save like myfile.qvs)

Use: We can manitain architecture (we will do a transformation and key creation and etc, so u can divide this part by part) and reusability

So, Key Creation script------> Key_Invoive.qvs

      Transformation----> Trans_Invoice.qvs

then u can include this script into qvw file through Insert-->Include statement-->Select the Qvs file.

Thanks,

Arvind Patil

bradley_isaacs
Contributor II
Contributor II
Author

Hi Arvind

I dont think you understand my issue. 

I know exactly what qvs files are and they are used for. 

My issues however is securing those qvs files, so that no one can get to them.

arvind_patil
Partner - Specialist III
Partner - Specialist III

Hi Bradley,

Copy all your Files into one qvw . Your code must be inside the comment . And Apply Section access on it if you put right password then only you can access.

May be it will help you.

Thanks,

Arvind patil

bradley_isaacs
Contributor II
Contributor II
Author

Hi Arvind

Section access will work, but the client still need access to the model (qvw) for maintenance purposes.  So i cant put the code inside the model.  And also, we send regular updates to the qvs files, hence they are being kept outside the model.

arvind_patil
Partner - Specialist III
Partner - Specialist III

Hi Bradley,

If client want your code at any cost for maintenance purpose then why you want to hide.

In simple words may be you secure your files wuth password then also you need to share your password.

I think no one have idea about It.

Thanks,

Arvind patil

gsbeaton
Luminary Alumni
Luminary Alumni

Hi Bradley,

It's actually very difficult to secure your QVS code.  There are various things you can do to try to obfuscate it but a bit like JavaScript and other client side scripting languages, nothing is really ever going to be secure against the determined snooper.

If your Qlik server can call out to the web, then consider making your QVS file web accessible.  You can either secure it by IP or, by using an API key.  Something like this would work:

//Hidden Script:

Sub GetQVS(apikey)

  $(Must_Include="https://mywebservice.com/LoadScript.qvs?"&apikey);

End Sub

//Application

SET apikey = dskfjflkjlsdsdlkjfdslkjfe;

CALL GetQVS($(apikey));

You can send your client a new API key every now and then and of course you can monitor access and secure by IP using traditional web security methods.

Oh, and of course, remember to set a password on your hidden script tab.

Hope that gets you started.

George

bradley_isaacs
Contributor II
Contributor II
Author

Thanks George

I was opting for an web solution. So i think this is the way to go.  ALso gives me hands-on, on the qvs files we want to update regularly. 

So your suggestion is really helpful and i do appreciate.

Thanks again.