Checked safe redirect paths
When your application is redirecting to another URL provided as a user-modifiable parameter (for example, a post login redirect in a custom login process), it is important to check it refers to a URL on this application to avoid providing an open redirect.
This function checks the URL, avoiding subtle mistakes, and providing a central place to update these checks should browser behaviour evolve.
function O.checkedSafeRedirectURLPath(rdr)
Returns the value of rdr if it is a safe redirect URL path, and null otherwise.
For example:
P.respond("GET,POST", "/do/something", [
{parameter:"rdr", as:"string", optional:true}
], function(E, rdr) {
rdr = O.checkedSafeRedirectURLPath(rdr);
// Do some operation
if(rdr) {
E.response.redirect(rdr);
}
});