NAME

Carp::Parse::Redact - Parse a Carp stack trace into an array of caller information, while redacting sensitive function parameters out.

DESCRIPTION

Carp produces a stacktrace that includes caller arguments; this module parses each line of the stack trace to extract its arguments and redacts out the sensitive information contained in the function arguments for each caller.

VERSION

Version 1.0.1

ARGUMENTS REDACTED BY DEFAULT

By default, this module will redact values for which the argument name is:

  • password

  • passwd

  • cc_number

  • cc_exp

  • ccv

You can easily change this list when parsing a stack trace by passing the argument sensitive_argument_names when calling parse_stack_trace().

SYNOPSIS

# Retrieve a Carp stack trace with longmess(). This is tedious, but you will
# normally be using this module in a context where the stacktrace is already
# generated for you and you want to parse it, so you won't have to go through
# this step.
sub test3 { return Carp::longmess("Test"); }
sub test2 { return test3(); }
sub test1 { return test2(); }
my $stack_trace = test1();

# Parse the Carp stack trace.
# The call takes an optional list of arguments to redact, if you don't want
# to use the default.
use Carp::Parse::Redact;
my $parsed_stack_trace = Carp::Parse::Redact::parse_stack_trace(
	$stack_trace,
	sensitive_argument_names => #optional
	[
		password
		passwd
		cc_number
		cc_exp
		ccv
	],
);

use Data::Dump qw( dump );
foreach my $caller_information ( @$parsed_stack_trace )
{
	# Print the arguments for each caller.
	say dump( $caller->get_redacted_arguments_list() );
}

FUNCTIONS

parse_stack_trace()

Parse a stack trace produced by Carp into an arrayref of Carp::Parse::CallerInformation::Redacted objects and redact out the sensitive information from each function caller arguments.

my $redacted_parsed_stack_trace = Carp::Parse::Redact::parse_stack_trace( $stack_trace );

AUTHOR

Kate Kirby, <kate at cpan.org>.

Guillaume Aubert, <aubertg at cpan.org>.

BUGS

Please report any bugs or feature requests to bug-carp-parse-redact at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Carp-Parse-Redact. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Carp::Parse::Redact

You can also look for information at:

ACKNOWLEDGEMENTS

Thanks to ThinkGeek (http://www.thinkgeek.com/) and its corporate overlords at Geeknet (http://www.geek.net/), for footing the bill while we eat pizza and write code for them!

COPYRIGHT & LICENSE

Copyright 2012 Kate Kirby & Guillaume Aubert.

This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License.

See http://dev.perl.org/licenses/ for more information.