even just discussing this subject here, even without your companies name, URL or other information, could be construed as a security breach!

Yes it could. It would have been better if he posted anonymously, but this shouldn't be his main concern. The vast majority of people who exploit these vulnerabilities know how to find them on their own. This does little to reduce the security of his web app.

As for informing your boss, I wouldn't make a big deal about it. Fix it, tell him you fixed a security problem, and suggest measures that would prevent the situation from arising in the future (secure programming standards, security audits, etc).

The vast majority of people who exploit these vulnerabilities know how to find them on their own.

Agreed. But there is no point in making their task any easier.

You said:

This does little to reduce the security of his web app.

Minor point, but it isn't his. Only worth making for what follows...

As for informing your boss, I wouldn't make a big deal about it.

He said:

I have tried to explain this to my boss

And that is his problem.

He said:

My current employer, with whom I have not been very long, and I only work here part time while continuing to study....

It's very easy to forget how little respect and authority one receives, if one young (somewhat of an assumption: he could be a mature student!) or new.

He's probably both!

You said:

and suggest measures that would prevent the situation from arising in the future (secure programming standards, security audits, etc).

Exactly what he is trying to do. However, given his current lowly position in the company, the hysterisis of "it's been working fine for a couple of years", the (overused) adage of "if it ain't broke, don't fix it!" and "what does he know, he's only a kid" .

He came here looking for advice on how to make his case, with authority, to his (apparently non-Perl/programming/security aware) boss.

Finally, you said:

Fix it, tell him you fixed a security problem

He said (my highlighting):

All the customer data that is submitted to the script is as well as being emailed to us, stored in a text file. However the text file to store the data in is passed as a hidden field from the html, and there is no check to make sure that the referring page is the correct one.

Any fix is most likely going to need (at minimum) prodedural changes on behalf of the customers.

Even if this were not the case, scenario (abbreviated).

Takes code home (no authority to do it on company time)...makes a few minor changes in preparation nothing significant, just setting stuff up for the (your) 'fix'. Installs it next day...monitors it carefully functions fine. Goes home for the weekend....

By now you can probably see where this is leading.

The ha...sorry, cracker that saw his append and tracked him, or had been "casing the joint" for a couple of weeks, makes his move. Several (hundred) customers credit cards get used for whatever, and who gets the blame???

All the customer data that is submitted to the script is as well as being emailed to us, stored in a text file. However the text file to store the data in is passed as a hidden field from the html, and there is no check to make sure that the referring page is the correct one.

So customer comes to the site, logs in, and currently their information (or more accurately, the location of the file containing the information) is passed via a hidden form field. There's no need for this really. The customer could just be passed a session identifier and all the remaining data would be stored on the server. This should be a relatively simple switch.

Now as for this:

cracker that saw his append and tracked him, or had been "casing the joint" for a couple of weeks, makes his move. Several (hundred) customers credit cards get used for whatever, and who gets the blame?

That's about equivalent to saying "if he puts locks on the doors and someone breaks in the next day, who's going to take the blame?" It's completely missing the point.

First off, there's no way a cracker's going to be monitoring a website with these vulnerabilities for weeks and not do anything. Secondly, not improving the security of a system for fear of being irrationally blamed for future incidents should be cause for dismissal on its own.

So customer comes to the site, logs in, and currently their information (or more accurately, the location of the file containing the information) is passed via a hidden form field. There's no need for this really. The customer could just be passed a session identifier and all the remaining data would be stored on the server.

I think you are assuming information not in evidence, but basically I agree - and so does Gerard...

This should be a relatively simple switch.

But he doesn't have authority to do it!

That's about equivalent to saying "if he puts locks on the doors and someone breaks in the next day, who's going to take the blame?" It's completely missing the point.

I'd say it closer to: "if he monkies no pun intended) with the alarm system, without authority--and possibly without the skills to know that the monkeying is improving and not worsening the risk--and someone breaks in the next day, who's gonna take the blame?". What point was I missing?

First off, there's no way a cracker's going to be monitoring a web site with these vulnerabilities for weeks and not do anything.

The true crackers, the one's that you never hear about because they do their dirty deeds quietly, without fuss and without leaving traces. They do it for profit not for "fun". The same guys that release script-kiddy tools and how-to tutorials, so that the authorities spend their time chasing the kiddies and not them. They, like any competent thief, don't rush in just because they can, they wait until they are:

sure that there is something worth stealing;

have all the information they need to gain quick access to what they want;

are very sure that their way in and out is clear, quick and safe;

they have a reasonable chance of laying a false trail away from them.

It would not be the first time one of these, quiet thieves had sown the seeds of interest in the hAx0r community for a potentially vulnerable site on a relatively open irc channel, then waited for the kiddies to make their play. Whilst they are doing their thing, using well known, clumsy, brute force techniques, the thief sneaks in through a pre-planned backdoor, executes his needs and exits, possibly raising the alarm on the kiddies at the front door on his way out to cover his tracks!

Secondly, not improving the security of a system for fear of being irrationally blamed for future incidents should be cause for dismissal on its own.

First, he has already tried to get authorisation to make the improvements...and was turned down! Hence his question.

Second, there is a very senior monk that made "allegedly unauthorised" changes and have paid the price for his proactive stance and another who had to back off from even giving simple advice for fear of the legal and employment repercussions.

You seem to misunderstand that the point is in authority and responsibilities; even though his concern may be valid, he is not authorized to fiddle with the script and will be fired if he does. Whoever has authority is responsible for validating his concerns; if the responsible party chooses to dismiss it and damage happens, then the responsible party will be blamed for the damage.

It's the really twisted type of corporate-think that makes companies spend big $$$$ on support contracts and makes them mistrust opensource projects. Unfortunately, it's how the money goes around too, so irrational as it may seem, you either get with the program or search for a meal in other people's trashbins.