Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: How to ensure that a supported version of my script is being executed?

by flexvault (Monsignor)
on Aug 21, 2012 at 20:51 UTC ( #988861=note: print w/replies, xml ) Need Help??

in reply to How to ensure that a supported version of my script is being executed?


Since I was brought back into this and since for the moment I'll assume that management wouldn't help you, because they think it's cute to corrupt an Oracle database. Here's a non fool proof idea.

First, you have to nullify all existing copies of your code, good and bad, and then the good code must be read-only to all users (including you). If you need to update the script, then you have to delete it, and then copy a new version, and then make it read-only. You also have to change the way you call Oracle so that your old scripts don't work any more. (hint: change password, change Table name, etc.)

Now write your 'C' program to verify the exact Perl script by not allowing it to be a symbolic link and that MD5 or SHA1 is correct. What I suggest is to read the Perl script into memory and add 50+ characters of non-printable data to it and then verify the MD5/SHA1 of that. If it fails then abort. Obviously the 'C' program must know the valid MD5/SHA1 value, but you can split the MD5/SHA1 into parts and resemble in memory, plus make the 'C' executable at least 100K in size. Now have the C executable write the script to an unique location with a unique name and then have the C program execute your script from there.

It will help, but if someone is determined...

If the 'C' program works, then you can update you Perl scripts and distribute them to happy users. We can hope!

This may help you if your problem user(s) doesn't want to spend a few days figuring out what you have done, but if s/he's good and persistent...

Plan B..Z is find a better job with better management :-)

Good Luck!

"Well done is better than well said." - Benjamin Franklin

  • Comment on Re: How to ensure that a supported version of my script is being executed?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://988861]
[Corion]: That's why I like HTML - it makes it relatively easy to resize stuff. Resizing with Powerpoint is much harder, or at least, I remember it being that way
[ambrus]: (a) good sans serif fonts optimized for slides in a projector with coverage of the symbols needed for mathematical formulas in a sans serif font matching the text font well, and
[ambrus]: (b) a good presentation system that lets the presenter quickly interactively edit the slides live during a presentation, to combine the advantages of blackboard and overhead slide styles in modern tech
[Corion]: Heh - in university, I cheated on (a) by doing blackboard presentations using chalk. But those were 2 hour presentations, not quick/essential/ reduced presentations where you want to show something quick
[ambrus]: (either on just one screen or two screens). this is necessary because
[ambrus]: overhead slide plus blackboard is inconvenient because the lighting conditions are different and they require separate areas you can't quickly repartition, and typing on keyboard is faster and more convenient than writing on a blackboard
[Corion]: (b) would be cool. I've thought about this doing Pod editing, and even simply regenerating/live updating the browser makes things much more interactive
[ambrus]: modern computers have way enough processing power to allow this, at least for geeks who are willing to spend a few weeks to learn a tricky new user interface like vim
[Corion]: ambrus: Well, for mathematical notation, I find blackboard much more convenient than a computer. But when inserting text or moving text around, the computer wins obviously
[ambrus]: But either of these is a big problem in practice, so I'd need to spend like thirty years of my life to solve (a) and five more years to solve (b)

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (11)
As of 2017-09-26 10:18 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (293 votes). Check out past polls.