Abstract
Debug code can create unintended entry points in a
deployed web application.
Description
A common development practice is to add "back door" code
specifically designed for debugging or testing purposes that
is not intended to be shipped or deployed with the
application. When this sort of debug code is accidentally
left in the application, the application is open to
unintended modes of interaction. These back door entry
points create security risks because they are not considered
during design or testing and fall outside of the expected
operating conditions of the application.
Examples
The most common example of forgotten debug code is a
main() method appearing in a web application. Although this
is an acceptable practice during product development,
classes that are part of a production J2EE application
should not define a main().