Helping ordinary people create extraordinary websites!
HOME TUTORIALS SCRIPTS WEB HOSTING BLOG FORUM
Get Our Newsletter
Email:

Build a Perl/CGI Voting System

By Allan Peda
2005-07-05


Details: Static vs. dynamic DNS

While it would have been possible for me to set up this service from a site with an assigned domain on a static IP address, I felt that a dynamic DNS would offer several security advantages. Normally a server is not reachable from the Web at large without a static IP address, but a dynamic DNS service allows me to set up a temporary resolvable machine name under another top-level domain. This allows me to quickly appear and disappear from the Internet, minimizing my exposure to black hats. Best of all, the service is free.

It is also worth noting that it may be advisable to configure the server to listen on a nonstandard high-numbered port such as 8000 since many ISPs block incoming connection requests on port 80. A client (voter) could then typically be referred to the vote server only through a link from a well-known static address, such as a school-supplied Web page. When voting is completed, the server offering the Web application can be completely removed from the Web remotely without shutting it down or reconfiguring it. There would be no possibility of any vulnerabilities affecting the referring page (which may be administered by someone else). This is an especially important consideration in politically sensitive environments. (See the Resources section for further details on using a dynamic DNS service.)



Tutorial Pages:
» Using locked DBM files with CGI-driven forms saves client data without DBMS overkill
» CGI considerations: Simplicity vs. complexity
» Functional design considerations
» Details: Hash keys
» Details: E-mail gotchas
» Details: Not-so-secret ballots
» Details: File layout
» Details: Static vs. dynamic DNS
» Details: Is GET harmful?
» Other possible improvements
» Conclusion
» Resources


First published by IBM DeveloperWorks


 | Bookmark
Related Tutorials:
» Random subroutines in Perl
» Log Script Use
» Creating Perl Modules for Web Sites
» Bit Vector, Using Perl Vec
» Perl Range Operator
» Creating Perl Modules for Websites