Error Handling, Logging, and Alerting

Learn why we should never expose stack traces to our users and instead use secure source maps, access-controlled error logging, and alerting services.

Stack traces

Error handling that reveals overly informative error messages to users, including stack traces, is a vulnerability that falls under the Security Misconfiguration OWASP category, currently ranked in the fifth position on the OWASP Top Ten. A stack trace is simply a list of the functions that were called in order that led to a certain line in an application. Stack traces are an essential aspect of debugging, but they can often reveal useful information to attackers as well.

Client-side stack traces

Stack traces are especially informative when determining why an error occurred on a specific line of code because they reveal the sequence of events that led up to the failure. We can also use console.trace to manually log a stack trace.

Keep in mind, it’s best practice to avoid using methods on the console object in client-side production code altogether. Use them locally or in testing environments while debugging only. We can use an ESLint rule to ensure that console methods are stripped before reaching production. This rule does not apply to server-side JavaScript because console is often used to output information to users and is not strictly for debugging purposes.

Get hands-on with 1400+ tech skills courses.