Hi, I have a desktop application developed in PB 2017 R3. It is connecting to the database (Sybase ASE 12.5) using the global transaction object SQLCA. To connect to the db, we are setting the trans object as:
SQLCA.Database = "MyDB"
SQLCA.Servername = "MyServer"
SQLCA.Logid = "DB_FID"
SQLCA.Logpass = "DB_PASS"
SQLCA.DBMS = "SYC"
SQLCA.Autocommit = TRUE
SQLCA.DbParm="EncryptPassword='True'"
CONNECT USING SQLCA;
This works perfectly fine for me. But the issue is, since this is a global object, it is being logged into the heap memory and a hacker can easily access this information (DB FID, DB Instance name) from the memory dump. The password is secure in this case, but other information is still accessible to the hacker. I tried by implementing local transaction object, and found that it is resolving the issue, but this is not a good (and feasible solution) as the application has almost 100+ screen where this SQLCA is used, in each screen we have to initialize, connect, and use local transaction object. Can there be any alternative (and offcourse feasible) solution to resolve this? Thanks!
I have also added the appropriate TO base ancestor method to allow the App to reconstitute the TO values for a either: a) A Connect / Disconnect operation (assuming that the App just doesn't want to go through the TO Init logic again before the next Connect).
- OR -
b) for cloning a TO connection using the GetTrans / SetTrans methods. ;-)
The "Beta" version of the framework with the above TO security is now on SF ... FYI: https://sourceforge.net/projects/stdfndclass/files/Applications/PowerBuilder/OrderEntry/Beta
Note1: This Framework Beta version is for PB 2019 R2 only.
Note2: I modified the approach last night to randomize the encryption by TO instance - for even a more secure memory resident TO. ;-)
Regards ... Chris