I hope you're not directing dies to the browser in production code. If you are then stop, because that is a security risk.

The problem is that the exact same debugging output that helps you figure out how to make a program work how you want it to can help an attacker to make it not work in the way that he wants it to.

A security hole generally starts off as a way to get your code to do something that it shouldn't. This often means that your code will die. In order to refine this into an attack, the attacker needs to figure out what they are doing that causes your code to misbehave, and needs to figure out how to make your code misbehave in the way that they want. You do not want to assist them in that, which means that you don't want to hand out debugging information.

The example that I point people to is the "SQL injection attack". In this case people don't properly escape parameters to SQL, and an attacker can then get custom SQL into your database. With debugging output, the attacker can probe to find out what your (now broken) SQL looks like, make it become something that the database will accept, convince the database to cough up information about what it looks like (which database it is is a good thing), and then convince it to cough up its data. (Credit card numbers are a favorite.)

If you don't provide debugging output, all of this is still possible, but it becomes incredibly harder to do.


In reply to Re: Carp: Fatals to my email by tilly
in thread Carp: Fatals to my email by Andre_br

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.