BESScrub Class Reference

Functions to clean/scrub input for security reasons. More...

#include <BESScrub.h>

List of all members.

Static Public Member Functions

Security functions


static bool command_line_arg_ok (const string &arg)
 sanitize command line arguments
static bool size_ok (unsigned int sz, unsigned int nelem)
 sanitize the size of an array. Test for integer overflow when dynamically allocating an array.
static bool pathname_ok (const string &path, bool strict)
 Does the string name a potentailly valid pathname? Test the given pathname to verfiy that it is a valid name. We define this as: Contains only printable characters; and Is less then 256 characters. If strict is true, test that the pathname consists of only letters, digits, and underscore, dash and dot characters instead of the more general case where a pathname can be composed of any printable characters.


Detailed Description

Functions to clean/scrub input for security reasons.

Member Function Documentation

bool BESScrub::command_line_arg_ok ( const string &  arg  )  [static]

sanitize command line arguments

Test the given command line argument to protect against command injections

Parameters:
arg argument to check
Returns:
true if ok, false otherwise

Referenced by main().

bool BESScrub::pathname_ok ( const string &  path,
bool  strict 
) [static]

Does the string name a potentailly valid pathname? Test the given pathname to verfiy that it is a valid name. We define this as: Contains only printable characters; and Is less then 256 characters. If strict is true, test that the pathname consists of only letters, digits, and underscore, dash and dot characters instead of the more general case where a pathname can be composed of any printable characters.

Note:
Using this function does not guarentee that the path is valid, only that the path could be valid. The intent is foil attacks where an exploit is encoded in a string then passed to a library function. This code does not address whether the pathname references a valid resource.
Parameters:
path The pathname to test
strict Apply more restrictive tests (true by default)
Returns:
true if the pathname consists of legal characters and is of legal size, false otherwise.

References BESRegex::match().

Referenced by main().

Here is the call graph for this function:

bool BESScrub::size_ok ( unsigned int  sz,
unsigned int  nelem 
) [static]

sanitize the size of an array. Test for integer overflow when dynamically allocating an array.

Parameters:
nelem Number of elements.
sz size of each element.
Returns:
True if the nelem elements of sz size will overflow an array.

Referenced by main(), and BESRegex::search().


The documentation for this class was generated from the following files:

Generated on Tue Jul 21 08:19:49 2009 for OPeNDAP Back End Server (BES) by  doxygen 1.5.8