Introduction to Input Validation with Perl

How can we make software that withstands malicious input attacks? We can start by minimizing the set of entities our software trusts and by conscientiously validating all input - then "hope for the best."

provided by: 
Originally published at Internet.com


A very important, well known, yet too often lightly dismissed problem in software security is that of trust management. There are many parties involved in the building and deployment of a software product (even if there's only one developer), and the entities that interact with the resulting system are even more, and often with diverse interests. Among these entities there necessarily exists a complicated network of explicit and implicit trust relationships, which in all but the simplest situations is too difficult (often impossible) to analyze. The problem, of course, dwells in the fact that links in this trust relationship network are vulnerable to abuse if their role and importance has been underestimated in the development process. Thus, the challenge that developers face is that of balancing the amount of effort invested in analyzing all possible interactions with their software and the desired level of reliability and security of their product. If these two objections could be quantified, their values would be inversely proportional to each other.

A thorough examination of trust management issues in software security could easily constitute a multivolume work by itself, and there is a lot of related research underway. For a good general introduction to the subject, consult [1] and Chapter 13 of [2]. This article will focus on one particular aspect of the problem - that of proper input validation. The article has two objectives. The first goal is to introduce the reader to the problem and to discuss some relevant secure programming techniques. The second objective is to confront the question "How can software be designed and implemented to withstand malicious input attacks?" The high-level scripting language Perl and the GNU/Linux platform will be used to illustrate key implementation ideas, but most of the discussion will be applicable to any other development environment...

Read article at Internet.com site
Related Articles
- Validating Date Entries in Forms
You may wonder how you can ever perform data entry validation for dates in forms. The problem is not so much in the calculations as it is in the wide variety of acceptable date formats around the world.
- Branching Method
- A Perl Guestbook
- Personal search engine
- File Permissions
- Security Issues in Perl Scripts
- Getting Started with PERL
- Password Protection
- Use Perl to do math
- Security Issues in Perl Scripts: Perl Taint Mode
Regional Articles
- Introduction to Input Validation with Perl Alabama
- Introduction to Input Validation with Perl Alaska
- Introduction to Input Validation with Perl Arizona
- Introduction to Input Validation with Perl Arkansas
- Introduction to Input Validation with Perl California
- Introduction to Input Validation with Perl Colorado
- Introduction to Input Validation with Perl Connecticut
- Introduction to Input Validation with Perl DC
- Introduction to Input Validation with Perl Delaware
- Introduction to Input Validation with Perl Florida
- Introduction to Input Validation with Perl Georgia
- Introduction to Input Validation with Perl Hawaii
- Introduction to Input Validation with Perl Idaho
- Introduction to Input Validation with Perl Illinois
- Introduction to Input Validation with Perl Indiana
- Introduction to Input Validation with Perl Iowa
- Introduction to Input Validation with Perl Kansas
- Introduction to Input Validation with Perl Kentucky
- Introduction to Input Validation with Perl Louisiana
- Introduction to Input Validation with Perl Maine
- Introduction to Input Validation with Perl Maryland
- Introduction to Input Validation with Perl Massachusetts
- Introduction to Input Validation with Perl Michigan
- Introduction to Input Validation with Perl Minnesota
- Introduction to Input Validation with Perl Mississippi
- Introduction to Input Validation with Perl Missouri
- Introduction to Input Validation with Perl Montana
- Introduction to Input Validation with Perl Nebraska
- Introduction to Input Validation with Perl Nevada
- Introduction to Input Validation with Perl New Hampshire
- Introduction to Input Validation with Perl New Jersey
- Introduction to Input Validation with Perl New Mexico
- Introduction to Input Validation with Perl New York
- Introduction to Input Validation with Perl North Carolina
- Introduction to Input Validation with Perl North Dakota
- Introduction to Input Validation with Perl Ohio
- Introduction to Input Validation with Perl Oklahoma
- Introduction to Input Validation with Perl Oregon
- Introduction to Input Validation with Perl Pennsylvania
- Introduction to Input Validation with Perl Rhode Island
- Introduction to Input Validation with Perl South Carolina
- Introduction to Input Validation with Perl South Dakota
- Introduction to Input Validation with Perl Tennessee
- Introduction to Input Validation with Perl Texas
- Introduction to Input Validation with Perl Utah
- Introduction to Input Validation with Perl Vermont
- Introduction to Input Validation with Perl Virginia
- Introduction to Input Validation with Perl Washington
- Introduction to Input Validation with Perl West Virginia
- Introduction to Input Validation with Perl Wisconsin
- Introduction to Input Validation with Perl Wyoming
Related Articles
- Validating Date Entries in Forms
You may wonder how you can ever perform data entry validation for dates in forms. The problem is not so much in the calculations as it is in the wide variety of acceptable date formats around the world.
- Branching Method
- A Perl Guestbook
- Personal search engine
- File Permissions
- Security Issues in Perl Scripts
- Getting Started with PERL
- Password Protection
- Use Perl to do math
- Security Issues in Perl Scripts: Perl Taint Mode

Rss   Delicious   Digg   Add To My Yahoo   Add To My Google   Bookmark   Search Plugin

Topics:
Architecture & Design Languages & Tools Project Management Web Services
Database Microsoft & .NET Security Wireless
Java Open Source Techniques XML