[Cialug] XSS input filtering

Barry Von Ahsen barry at vonahsen.com
Wed Nov 7 09:49:35 CST 2012


well, you can safely echo $release if register_globals is off, and your variables_order is sane, and, and, and :)

I program my php like it's a real language - initialize variables to impossible defaults (NULL, -1, etc), inspect the crap out of user-supplied inputs and enforce strict type checking, and fail if anything is amiss.  unfortunately, most of that goes out when users can generate html, so YMMV

(even names are hard: spaces, periods, apostrophes, hyphens.  I love this article: http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ )

like I said, it's hard, and it's why I get annoyed when people claim web programming isn't "real" programming (even before you get into the breadth of technologies required (which may be part of the problem (moar parens)))


-barry


On Nov 7, 2012, at 8:58 AM, Matthew Nuzum wrote:

> Strip tags is a pretty solid way as long as you don't provide a second
> param (the allowed_tags param). It's hard to do xss when HTML is not
> allowed. However it is a very heavy-handed technique. If that works for you
> then do it.
> 
> I think you'll find that the biggest problem you have other than stuff
> being stripped out is that sometimes you'll forget to strip fields or one
> field that needs tags in it will miss a corner case. :-(
> 
> A technique I use for the most important tasks is to mitigate the impact of
> an XSS. For example, use a different domain for all management tasks than
> you do for viewing the site.
> 
> Another technique is to never display user provided content. For example, I
> do something like this:
> 
> <?php
> switch ($_GET['release']) {
>  case 'lts':
>    $release = 'lts';
>    break;
>  case 'latest':
>  default:
>    $release = 'latest';
> }
> ?>
> 
> This way I can <?php echo $release; ?> without concern.
> 
> That doesn't work for when you actually want to display user generated
> content of course. :-)
> 
> On Wed, Nov 7, 2012 at 6:35 AM, Dave Hala Jr <dave at 58ghz.net> wrote:
> 
>> Anyone had any success using the php strip_tags function for input
>> filtering?  It looks like a simple solution for filtering input and
>> output and avoiding XSS issues.
>> 
>> 
>> :) Dave
>> 
>> _______________________________________________
>> Cialug mailing list
>> Cialug at cialug.org
>> http://cialug.org/mailman/listinfo/cialug
>> 
> 
> 
> 
> -- 
> Matthew Nuzum
> newz2000 on freenode, skype, linkedin and twitter
> 
> ♫ You're never fully dressed without a smile! ♫
> _______________________________________________
> Cialug mailing list
> Cialug at cialug.org
> http://cialug.org/mailman/listinfo/cialug



More information about the Cialug mailing list