Durham University

Computing and Information Services

Use of CGI scripts in Durham

If you put a form on a WWW page, then each time a visitor to the WWW page clicks on the "Submit" button, a program will need to be run on the WWW server to do something with the data. Such a program is called a CGI program.

Often CGI programs are written in the scripting language Perl, and they are then called CGI scripts. However, they can be written in other programming languages.

However, because of various resource and security problems, CIS does not allow people to run their own CGI programs on the University's WWW server.

Examples of resource problems are: a CGI program could consume large amounts of CPU-time; it could consume a lot of memory; or it could eat up space in /tmp. Any of these events would mean that our WWW server would then behave badly for other people visiting the University's WWW pages.

As far as security is concerned: unless the CGI program is written with security in mind, then a visitor to the WWW page could fill in responses that allow him/her to run their own Unix commands on the WWW server's computer, and possibly compromise that computer.

So if we were to allow CGI programs, this would require a member of CIS to vet programs, and to see whether they would cause problems. Usually, these programs do not work first time, and so such development work by the author of the CGI program would need constant interaction with a member of CIS. Even if the program has been completed, the author of the program will probably want to update the program or install a new version of the program at a later date. CIS does not have the resource to do all this work.

We do have a questionnaire form that can be used as part of a WWW page which allows information to be obtained from a user. It would result in you getting an email message from each person completing the form. The CIS pages about publishing on the WWW and the material on forms may be useful. There you will find a link to a page which tells you about the template for a questionnaire form.