<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">funkatron.com: Infosec Posts</title>
    <subtitle type="text">funkatron.com:Funkablog</subtitle>
    <link rel="alternate" type="text/html" href="http://funkatron.com/site/index/" />
    
    <updated>2010-02-18T14:48:45Z</updated>
    <rights>Copyright (c) 2010, funkatron</rights>
    <generator uri="http://www.pmachine.com/" version="1.6.8">ExpressionEngine</generator>
    <id>tag:funkatron.com,2010:02:16</id>


    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/FunkatroncomInfosecPosts" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="funkatroncominfosecposts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
      <title>Why Spaz isn’t “signed”</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/why-spaz-isnt-signed/" />
      <id>tag:funkatron.com,2009:site/index/1.2445</id>
      <published>2009-03-09T02:56:26Z</published>
      <updated>2009-03-09T03:04:27Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="AIR" scheme="http://funkatron.com/site/category/air/" label="AIR" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="Spaz" scheme="http://funkatron.com/site/category/spaz/" label="Spaz" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://www.flickr.com/photos/missbeckles/118385487/" title="Enron Corp. Stock Certificate"&gt;&lt;img src="http://farm1.static.flickr.com/48/118385487_5eeaafc5bd.jpg" alt="&amp;quot;Enron Corp. Stock Certificate&amp;quot;" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We don&amp;#8217;t sign &lt;a href="http://funkatron.com/spaz"&gt;Spaz&lt;/a&gt; with a code signing certificate generated by one of the 4 (as of this writing) certificate authorities Adobe accepts. This means that when you install Spaz, you get a scary &amp;#8220;Publisher:UNVERIFIED&amp;#8221; warning. This is why we don&amp;#8217;t sign, from a letter I wrote when asked about it in Spring 2008:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If I sign Spaz with a paid-for Thawte cert, I am on the hook &lt;em&gt;every&lt;/em&gt; year for a Thawte cert. I can&amp;#8217;t change my cert signer or go back to a self-signed cert without breaking auto updating (at least as I understand it), and I&amp;#8217;m therefore locked into a $300 expense every year. That&amp;#8217;s not terrible for a commercial app backed by a company, but that&amp;#8217;s a pretty significant chunk of change for a free, open-source app developed by one person as a hobby to lay out.&lt;/p&gt;
  
  &lt;p&gt;I&amp;#8217;m familiar with how certs work, and how Thawte handles certification as compared to other, less expensive cert vendors. Were I convinced that Thawte did some kind of verification process/background checking on the applicant I could see the value, but at least with SSL certs, they certainly didn&amp;#8217;t do anything more than vendors who donate free certs to EDUs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Currently, there are 3 other CAs in addition to Thawte, and the prices range between $180 and $300 per year. Some of these CAs do seem to do a little more background checking. Still, the same arguments apply, especially the one related to cost.&lt;/p&gt;

&lt;p&gt;Spaz doesn&amp;#8217;t generate revenue, and relies on donated time from myself and a handful of other generous folks. Committing to a yearly expense in the hundreds of dollars seems unwise.&lt;/p&gt;

&lt;p&gt;If this is something you would like to see change, I&amp;#8217;d encourage you to &lt;a href="http://adobe.com/go/wish"&gt;ask Adobe&lt;/a&gt; to make code signing a realistic option for Free, Open-Source Software like Spaz by providing certificates free-of-charge &amp;#8211; after a reasonable review process &amp;#8211; to projects like ours.&lt;/p&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/TAeqlivYhsE" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Security for the Social Set at SXSW - A Conversation</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/security-for-the-social-set-at-sxsw-a-conversation/" />
      <id>tag:funkatron.com,2009:site/index/1.2444</id>
      <published>2009-03-06T22:34:22Z</published>
      <updated>2009-03-06T22:46:23Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://www.flickr.com/photos/eye2eye/50892860/" title="Conversation, NYC, 1970"&gt;&lt;img src="http://farm1.static.flickr.com/32/50892860_3b4cf0f7f0.jpg" alt="&amp;quot;Conversation, NYC, 1970&amp;quot;" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://sxsw.com/interactive/talks/core_conversations?action=show&amp;id=IAP0901250" style="float:right; background-color:#FFF"&gt;&lt;img src="http://sxsw.com/files/u10/i_speaker_webtile.gif" alt="See me speak at SXSW 2009 (http://sxsw.com)" border="0" /&gt;&lt;/a&gt;Do you work in social media? Do you develop social networking sites? Do you like it when people do &lt;em&gt;not&lt;/em&gt; hack your Facebook account?  If you answered &amp;#8220;yes&amp;#8221; to one of the above, then you simply &lt;em&gt;must&lt;/em&gt; attend &lt;a href="http://sxsw.com/interactive/talks/core_conversations?action=show&amp;amp;id=IAP0901250"&gt;&lt;strong&gt;Security for the Social Set&lt;/strong&gt;, a Core Conversation&lt;/a&gt; I&amp;#8217;m leading at SXSW. It will take place on Sunday morning at 11:30 a.m.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m excited to be able to lead this conversation, especially because I think security &amp;#8211; especially practical solutions &amp;#8211; is woefully under-represented in social media discussion. It&amp;#8217;s my hope that we can raise awareness of these issues, identify where the biggest problems lie, and start sorting out how to address them.&lt;/p&gt;

&lt;p&gt;I am told the Core Conversations will suck less this year. Last year it was often hard to hear people in your group if there was a raucous group next to yours. This year each group should have their own room, which will be a lot better, I think.&lt;/p&gt;

&lt;p&gt;Hope to &lt;a href="http://sxsw.com/interactive/talks/core_conversations?action=show&amp;amp;id=IAP0901250"&gt;see you there&lt;/a&gt;!&lt;/p&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/yNPUdoAgfb0" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Safely parsing JSON in JavaScript</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/safely-parsing-json-in-javascript/" />
      <id>tag:funkatron.com,2008:site/index/1.2439</id>
      <published>2008-10-15T15:24:17Z</published>
      <updated>2009-02-07T01:58:18Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="AIR" scheme="http://funkatron.com/site/category/air/" label="AIR" />
      <category term="JavaScript" scheme="http://funkatron.com/site/category/javascript/" label="JavaScript" />
      <category term="jQuery" scheme="http://funkatron.com/site/category/jquery/" label="jQuery" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://flickr.com/photos/slambo_42/1092945151/" title="Wear safety shoes"&gt;&lt;img src="http://farm2.static.flickr.com/1342/1092945151_8e1d2f6677.jpg" alt="Wear safety shoes" title="Wear safety shoes" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I love me some &lt;a href="http://json.org"&gt;JSON&lt;/a&gt;. It saves me tons of parsing headaches when exchanging data between web services because it maps so well to concepts shared among most common programming languages. It&amp;#8217;s super easy to take a PHP object, convert it to JSON, and then push it to a Javascript (or a Ruby, or a Python) app.&lt;/p&gt;

&lt;p&gt;Because JSON is valid JavaScript code, the most common method for converting it into native JS objects is to just &lt;code&gt;eval&lt;/code&gt; the JSON. This is an extremely bad idea, because it opens your app up to all sorts of code injection attacks. Even with &amp;#8220;trusted&amp;#8221; sources, a security failure on your source&amp;#8217;s end, or just a disgruntled employee, could wreak havoc on your apps and your users. I&amp;#8217;d recommend reading &lt;a href="http://yuiblog.com/blog/2007/04/10/json-and-browser-security/"&gt;Douglas Crockford&amp;#8217;s &amp;#8220;JSON and Browser Security&amp;#8221;&lt;/a&gt;. Go ahead; I&amp;#8217;ll wait. &lt;img src="http://funkatron.com/content/rockanim.gif" alt="Rockford is impatient" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://jquery.com"&gt;jQuery&lt;/a&gt;, which we&amp;#8217;ll use for all our examples because it&amp;#8217;s awesome, will in many cases automatically parse JSON responses for you. This, as we learned above, is a Bad Thing. The following &lt;a href="http://docs.jquery.com/Ajax"&gt;Ajax methods&lt;/a&gt; will automatically parse JSON in jQ (as of 1.2):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;jQuery.getJSON()&lt;/code&gt; &amp;#8211; &lt;em&gt;always&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jQuery.ajax()&lt;/code&gt; &amp;#8211; &lt;em&gt;if &lt;code&gt;type&lt;/code&gt; is &amp;#8216;json&amp;#8217;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jQuery.get()&lt;/code&gt; &amp;#8211; &lt;em&gt;if &lt;code&gt;type&lt;/code&gt; is &amp;#8216;json&amp;#8217;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jQuery.post()&lt;/code&gt; &amp;#8211; &lt;em&gt;if &lt;code&gt;type&lt;/code&gt; is &amp;#8216;json&amp;#8217;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So my rules of thumbs are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;never, ever use &lt;code&gt;$.getJSON()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;never, ever set the &lt;code&gt;type&lt;/code&gt; option to &amp;#8216;json.&amp;#8217;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To force the issue, I set my type to &amp;#8216;text&amp;#8217; in my ajax calls. For example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;script type="text/javascript" charset="utf-8" src="/js/jquery.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type="text/javascript" charset="utf-8"&amp;gt;
    $.ajax('http://twitter.com/statuses/public_timeline.json', function(data, textStatus) {
        alert('Status is '+textStatus);
        alert('JSON data string is: '+data);
    }, 'text');     
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In the example above, we&amp;#8217;re including the jquery library with the first &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag, and then calling the &lt;code&gt;jQuery.ajax()&lt;/code&gt; method in the second. We&amp;#8217;re passing three parameters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;the URL we&amp;#8217;re pulling the JSON string from. In this case, it&amp;#8217;s the Twitter public timeline&lt;/li&gt;
&lt;li&gt;an anonymous function that&amp;#8217;s called when the request is successful&lt;/li&gt;
&lt;li&gt;the type of data we&amp;#8217;re getting, as a string. Using &amp;#8216;text&amp;#8217; ensures no extra processing is done on the response string&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So this is great, but all we&amp;#8217;ve got is a string of serialized data, which isn&amp;#8217;t terribly useful. Thankfully, there&amp;#8217;s &lt;a href="http://json.org/json2.js"&gt;a handy library&lt;/a&gt; at &lt;a href="http://json.org"&gt;JSON.org&lt;/a&gt; that takes care of parsing JSON &lt;strike&gt;without using &lt;code&gt;eval&lt;/code&gt;&lt;/strike&gt; without using &lt;code&gt;eval&lt;/code&gt; on non-JSON code&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt;. The library gives us two methods: &lt;code&gt;JSON.parse()&lt;/code&gt; for turning a JSON string into a JS object, and &lt;code&gt;JSON.stringify()&lt;/code&gt; for turning a JS object into a JSON string. So let&amp;#8217;s utilize JSON.parse() in our code, and actually do something with that data:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;script type="text/javascript" charset="utf-8" src="/js/jquery.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type="text/javascript" charset="utf-8" src="/js/JSON2.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type="text/javascript" charset="utf-8"&amp;gt;
    $.get('http://twitter.com/statuses/public_timeline.json', function(data, textStatus) {
        alert('Status is '+textStatus);
        alert('JSON data string is: '+data);

        // this will give us an array of objects
        var public_tweets = JSON.parse(data);

        // iterate over public_tweets
        for(var x=0; x &amp;lt; public_tweets.length; x++) {
            var twt = public_tweets[x];
            var elm = '&amp;lt;div class="tweet" id="'+twt.id+'"&amp;gt; \
                &amp;lt;a href="'+twt.user.url+'"&amp;gt;&amp;lt;img src="'+twt.user.profile_image_url+'" /&amp;gt;&amp;lt;/a&amp;gt; \
                    &amp;lt;div class="tweet-text"&amp;gt;'+twt.text+'&amp;lt;/div&amp;gt; \
                &amp;lt;/div&amp;gt;';
            $('BODY').prepend(elm);
        }
    }, 'text');
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In the modified example above, the second script tag loads the JSON2 library. We then use the &lt;code&gt;JSON.parse()&lt;/code&gt; method to turn the data string into a JavaScript object &amp;#8211; in this case, and array of Twitter message objects. Then we iterate over the array, building a string of HTML for each entry and prepending it to the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; tag (so the newest item is on top).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you&amp;#8217;re using this code on a remotely-hosted html page (or loading it as a local file under Firefox 3), it won&amp;#8217;t work, and if you check in your error console you&amp;#8217;ll probably see a security warning. That&amp;#8217;s because our &lt;code&gt;$.get()&lt;/code&gt; call directly accesses the Twitter API hosted on Twitter.com, which is almost certainly not the domain your files are hosted on. When we try to do so, it violates the same-origin policy enforced by browsers. The only workaround that I think is safe is to set up some sort of proxy on &lt;em&gt;your&lt;/em&gt; domain to pass requests &amp;#8211; other approaches like JSONP rely on &lt;code&gt;eval()&lt;/code&gt;ing the result, which is what we&amp;#8217;re trying to avoid here. I&amp;#8217;ll try to cover setting up a local domain proxy in a future post.&lt;/p&gt;

&lt;p&gt;By handling JSON with a parser rather than just using &lt;code&gt;eval()&lt;/code&gt;, we mitigate the risk of code injection. This helps us protect both our application &lt;em&gt;and&lt;/em&gt; our users.&lt;/p&gt;

&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;

&lt;li id="fn:1"&gt;
&lt;p&gt;Basically, JSON.parse() runs a regex search for code that appears to be defining a function or redefining prototypes or other kinds of stuff beyond simple data transmission, and guts those parts.&amp;#160;&lt;a href="#fnref:1" rev="footnote"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;
&lt;/div&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/dSHTB2_KnTI" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Let’s make SXSWi 2009 suck less!</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/lets-make-sxswi-2009-suck-less/" />
      <id>tag:funkatron.com,2008:site/index/1.2434</id>
      <published>2008-08-20T02:52:00Z</published>
      <updated>2008-08-20T03:07:54Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="General" scheme="http://funkatron.com/site/category/General/" label="General" />
      <category term="JavaScript" scheme="http://funkatron.com/site/category/javascript/" label="JavaScript" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="The Web Problem" scheme="http://funkatron.com/site/category/the-web-problem/" label="The Web Problem" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://flickr.com/photos/delta407/268859813/" title="VISI Hat Back"&gt;&lt;img src="http://farm1.static.flickr.com/79/268859813_45697e2911.jpg" alt="We Suck Less &amp;quot;VISI Hat Back&amp;quot;" title="VISI Hat Back" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember when you went to &lt;a href="http://www.sxsw.com/interactive/"&gt;SXSWi&lt;/a&gt; &lt;a href="http://2008.sxsw.com/"&gt;last year&lt;/a&gt;, and you said &amp;#8220;I love the parts where I meet cool people and eat free food and drink free booze and throw up, but I wish the presentations and panels weren&amp;#8217;t so goddamn fluffy?&amp;#8221; Me too. That&amp;#8217;s why &lt;a href="http://al3x.net"&gt;Alex Payne&lt;/a&gt; (aka &amp;#8220;The Guy Who Has Actual Name Recognition&amp;#8221;) and myself submitted the talk &amp;#8220;&lt;strong&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/2065?return=/ideas/index/3/q:security"&gt;Security for the Social Set&lt;/a&gt;&lt;/strong&gt;.&amp;#8221;&lt;/p&gt;

&lt;p&gt;The idea is that we give some solid, useful information about the security problems social networking apps have to deal with, and how to deal with them. While we can&amp;#8217;t get too focused on specific languages and frameworks, client-side defense with JavaScript will certainly be demonstrated, and I intend to show examples in PHP and probably a couple other platforms (&lt;em&gt;cough&lt;/em&gt;Rails&lt;em&gt;cough&lt;/em&gt;). It will be hard to get into heavy detail within the alloted time, but it&amp;#8217;s my hope that we can kickstart awareness and understanding of fundamental secure web app programming techniques.&lt;/p&gt;

&lt;p&gt;Plus, I need a justification for dropping the coin for hotel and air fare on this boozefest, so please, &lt;a href="http://panelpicker.sxsw.com/ideas/view/2065?return=/ideas/index/3/q:security"&gt;vote for us&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/2065"&gt;Security for the Social Set&lt;/a&gt;&lt;/strong&gt; (SXSW 2009)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Oh, and a few other meaty talks you should consider include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/1864"&gt;Practical JavaScript Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/1863"&gt;More Secrets of JavaScript Libraries&lt;/a&gt; (this was packed last year)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/1071"&gt;200s, 304s, HTTP Compression, and You&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/1517"&gt;Hackproofing Ruby-on-Rails Web Applications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/1146"&gt;Functional Programming Without A (Strictly) Functional Language&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/773"&gt;Unit Testing Back to Front: Prove it Works!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/eQFL8NoCa2U" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Slides from OSCON 2008 PHPSecInfo talk</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/slides-from-oscon-2008-phpsecinfo-talk/" />
      <id>tag:funkatron.com,2008:site/index/1.2433</id>
      <published>2008-07-24T21:54:00Z</published>
      <updated>2008-07-29T03:53:03Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="PHPSecInfo" scheme="http://funkatron.com/site/category/PHPSecInfo/" label="PHPSecInfo" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;Just a quick note that my slides from my OSCON 2008 talk, &amp;#8220;Securing the PHP Environment With PHPSecInfo,&amp;#8221; are now online.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[PDF](http://funkatron.com/content/Securing the PHP Environment With PhpSecInfo-OSCON2008.pdf)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.slideshare.net/funkatron/securing-the-php-environment-with-phpsecinfo-oscon-2008/"&gt;Slideshare&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/4HXhdtNlVbk" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>PHPSecInfo talk at OSCON 2008</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/phpsecinfo-talk-at-oscon-2008/" />
      <id>tag:funkatron.com,2008:site/index/1.2432</id>
      <published>2008-07-22T16:34:00Z</published>
      <updated>2008-07-22T16:36:24Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="PHPSecInfo" scheme="http://funkatron.com/site/category/PHPSecInfo/" label="PHPSecInfo" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://www.flickr.com/photos/53795565@N00/211065412/"&gt;&lt;img src="http://farm1.static.flickr.com/58/211065412_70a843d41d.jpg" alt="OSCON 2006: Energizing the Industry" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re at OSCON, and you &lt;em&gt;love&lt;/em&gt; security, you may or may not enjoy &lt;a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2829"&gt;my talk on PHPSecInfo&lt;/a&gt;, a security auditing tool for the PHP environment. I&amp;#8217;m actually going to try to show some new code, so if you&amp;#8217;ve seen it before, you can see it again &amp;#8211; for the first time.&lt;/p&gt;

&lt;p&gt;The talk is at &lt;a href="http://en.oreilly.com/oscon2008/public/schedule/detail/2829"&gt;1:45pm Thursday, 07/24/2008&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://phpsecinfo.com"&gt;PHPSecInfo homepage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpsecinfo.googlecode.com"&gt;PHPSecInfo code repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/95oJOuZI6Vk" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Slides from php|tek 2008</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/slides-from-phptek-2008/" />
      <id>tag:funkatron.com,2008:site/index/1.2428</id>
      <published>2008-06-01T17:24:00Z</published>
      <updated>2008-06-01T17:28:46Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="PHPSecInfo" scheme="http://funkatron.com/site/category/PHPSecInfo/" label="PHPSecInfo" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://www.flickr.com/photos/funkatron/2513940329/"&gt;&lt;img src="http://farm4.static.flickr.com/3126/2513940329_1fa144738b.jpg" alt="Affleck, you the *bomb* in Phantoms yo!" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After experiencing the inspiring atmosphere of php|tek 2008, I vowed to write a blog post a day to hone my writing skills.&lt;/p&gt;

&lt;p&gt;Whoops!&lt;/p&gt;

&lt;h3&gt;Building Desktop RIAs with PHP, HTML &amp;amp; Javascript in AIR&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Note: The ZIP on the php|tek 2008 site didn&amp;#8217;t have the AIR code in it, so until that&amp;#8217;s fixed I&amp;#8217;m linking to my locally hosted copied&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://funkatron.com/content/Building%20Desktop%20RIAs-phptek2008.pdf"&gt;Slides (PDF)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://funkatron.com/content/Building%20Desktop%20RIAs-phptek2008-CODE.zip"&gt;Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Securing the PHP Environment with PHPSecInfo&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://tek.phparch.com/mats/slides/ed_finkler-phpsecinfo.pdf"&gt;Slides (PDF)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/4xDfz5cYIJc" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Encouraging steps towards security in Wordpress 2.5</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/encouraging-steps-towards-security-in-wordpress-25/" />
      <id>tag:funkatron.com,2008:site/index/1.2424</id>
      <published>2008-04-01T18:15:00Z</published>
      <updated>2008-04-01T18:37:18Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://flickr.com/photos/parl/3594329/"&gt;&lt;img src="http://farm1.static.flickr.com/2/3594329_f3e39a44ed.jpg?v=0" alt="Table Salt" title="Table Salt" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anyone who gets me liquored up knows that I&amp;#8217;m not a fan of Wordpress. I think it&amp;#8217;s &lt;em&gt;great&lt;/em&gt; from a user (that is, the person writing the content) standpoint, but it has lagged behind severely in terms of security, and I don&amp;#8217;t believe its popularity is the sole reason WP has been the subject of dozens of vulnerability reports every year. That being said, the WP 2.5 release appears to offer significant improvements in a couple areas: password hashes and cookie data encryption. From &lt;a href="http://wordpress.org/development/2008/03/wordpress-25-brecker/" title="the WP blog"&gt;the WP blog&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;

&lt;p&gt;Salted passwords &amp;#8212; we now use the &lt;a href="http://www.openwall.com/phpass/"&gt;phpass&lt;/a&gt; library to stretch and salt all passwords stored in the database, which makes brute-forcing them impractical. If you use something like mod_auth_mysql we&amp;#8217;ve created a plugin that will allow you to use legacy MD5 hashing. (The hashing is completely pluggable.) Users will automatically switch to the more secure passwords next time they log in.&lt;/p&gt;

&lt;p&gt;Secure cookies &amp;#8212; cookies are now encrypted based on the protocol described in &lt;a href="http://www.cse.msu.edu/~alexliu/publications/Cookie/cookie.pdf"&gt;this PDF paper&lt;/a&gt;. which is something like &lt;code&gt;user name|expiration time|HMAC( user name|expiration time, k)&lt;/code&gt; where &lt;code&gt;k = HMAC(user name|expiration time, sk)&lt;/code&gt; and where &lt;code&gt;sk&lt;/code&gt; is a secret key, which you can define in your config.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;These are good steps, and while I think they took way too long to happen, I&amp;#8217;m glad they finally did. I do still feel that WP suffers from an architecture that makes it too easy to make input filtering mistakes, and I would strongly recommend a tool like &lt;a href="http://php-ids.org/2008/02/21/wpids-version-012-released/"&gt;WPIDS&lt;/a&gt; for all self-hosting Wordpress users.&lt;/p&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/RJFaWC4-5pY" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Notes on SXSW2008</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/notes-on-sxsw2008/" />
      <id>tag:funkatron.com,2008:site/index/1.2422</id>
      <published>2008-03-13T01:36:00Z</published>
      <updated>2008-03-13T02:05:05Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="Development" scheme="http://funkatron.com/site/category/Development/" label="Development" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="Design" scheme="http://funkatron.com/site/category/Design/" label="Design" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://www.flickr.com/photos/funkatron/2328083460/" title="Passive-aggressive by funkatron, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3164/2328083460_6fae4a10ae.jpg" width="500" height="375" alt="Passive-aggressive" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;The experience of SXSW&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Unlike other conferences I&amp;#8217;ve been to, which were mostly tech confs SXSWi is not about nuts and bolts &amp;#8212; it&amp;#8217;s about higher level issues of people using technology

&lt;ul&gt;
&lt;li&gt;A couple exceptions, like the &lt;a href="http://2008.sxsw.com/interactive/programming/panels_schedule/?action=show&amp;amp;id=IAP060469"&gt;Secrets of JavaScript Libraries&lt;/a&gt;. This was good, and I&amp;#8217;d like to see more like this. I don&amp;#8217;t expect hardcore advanced code talks, but good intro-level stuff would go a long way, I think.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;At most confs I attend, I&amp;#8217;m the &amp;#8220;weird&amp;#8221; dude, with my earrings and black t-shirts. At SXSW I&amp;#8217;m another asshole with a fauxhawk.&lt;/li&gt;
&lt;li&gt;Way, way, way more women at SXSWi than any tech conf. Someone on a panel I attended complained that the % of females has been going down at SXSWi, and I&amp;#8217;d guess it&amp;#8217;s maybe 35-40% female. At most of the tech conferences I go, it&amp;#8217;s 5-10% female, tops.&lt;/li&gt;
&lt;li&gt;Despite the fact that web apps are one of the primary points of attacks for malicious users, security was really not talked about much at SXSW (although I heard there was some in the &lt;a href="http://2008.sxsw.com/interactive/programming/panels_schedule/?action=show&amp;amp;id=IAP060295"&gt;OpenID panel&lt;/a&gt;). This was disappointing. People running web apps are the stewards of their users security and privacy, a responsibility not to be taken likely. I&amp;#8217;d wager under 20% of attendees and panelists could describe basic techniques for architecting software with security in mind (but I hope it&amp;#8217;s higher). Definitely need to propose a panel for 2009.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;The culture of Austin&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;People really do seem more hospitable. Locals will ask a stranger how there night&amp;#8217;s going. This is pleasant, but a little weird for a yanqui when it happens in the men&amp;#8217;s room.&lt;/li&gt;
&lt;li&gt;Austin embraces being different. They &lt;em&gt;like&lt;/em&gt; it, from the top down. This is so unlike most other communities.&lt;/li&gt;
&lt;li&gt;Austin doesn&amp;#8217;t feel like a big city. It has some big, cool buildings, but you&amp;#8217;ll see flop houses a couple blocks away. &lt;/li&gt;
&lt;li&gt;Closest thing I&amp;#8217;ve experienced to Austin is Portland. I think PDX has better public transportation. Austin&amp;#8217;s weather doesn&amp;#8217;t cause city-wide suicide watches, though.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Other tidbits&lt;/h3&gt;

&lt;p&gt;Introduced &lt;a href="http://clintecker.com/"&gt;Clint Ecker&lt;/a&gt; to &lt;a href="http://sneer.org/"&gt;Jason Perkins&lt;/a&gt;, both Chicago-based web devs. They discover that they work literally next door from one another.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Had lunch with Jason Perkins and the rest of the &lt;a href="http://pixish.com"&gt;Pixish&lt;/a&gt; crew. Surprisingly was not mocked incessantly for not using Rails. They&amp;#8217;re good peeps, and Pixish is a cool site.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I wonder how far &lt;a href="http://www.viddler.com/explore/allfacebook/videos/13/"&gt;the Zuckerberg &amp;#8220;keynote&amp;#8221;&lt;/a&gt; set back female journalism. That&amp;#8217;s a hari-kari situation right there.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;If you are unwilling to say to someone&amp;#8217;s face what you say in your little gadget (or otherwise) blog, you need to shut up. Stop being a punk.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I was really happy to see &lt;a href="http://ExpressionEngine.com"&gt;ExpressionEngine&lt;/a&gt; and &lt;a href="http://codeigniter.com"&gt;CodeIgniter&lt;/a&gt; represented as strongly as they were at SXSW. I still feel strongly that EE is the strongest CMS product in its market (which includes Drupal, Joomla, Wordpress and the like), and the improvements in EE2.0&amp;#8217;s administration system will increase productivity considerably.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Holy shit, I have never seen as many iPhones as I did there. And it&amp;#8217;s taking some effort on my part to not go get one now. I could have left my laptop in the hotel room if I&amp;#8217;d had one, which would have reduced my fatigue considerably. Since I am doing about 4 conferences a year, it&amp;#8217;s starting to make more sense. I&amp;#8217;m making myself wait for a new hardware revision, though (and I really can&amp;#8217;t afford one atm).&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The panel on the success of &lt;a href="http://icanhascheezburger.com/"&gt;icanhascheezburger.com&lt;/a&gt; was interesting, and I think underlines that &lt;em&gt;luck&lt;/em&gt; is a (the?) key component for almost all of these rags-to-riches stories&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Being &lt;em&gt;with&lt;/em&gt; someone &amp;#8212; or a small group &amp;#8212; seems key to me. I think I would have enjoyed SXSWi a lot less if I was not able to always count on the two friends I was with.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Do not be afraid to come up and talk to people. It&amp;#8217;s hard for me to do, but I was always glad I did. I got to meet old internet-only friends like &lt;a href="http://tinynibbles.com"&gt;Violet Blue&lt;/a&gt; because of this (so glad I did!). I also got a hug from &lt;a href="http://www.lifestudent.com/"&gt;Halcyon&lt;/a&gt;, which was awesome &amp;#8212; more dudes should be down with hugs.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Meeting &lt;a href="http://al3x.net"&gt;Alex Payne&lt;/a&gt; was another highlight of SXSW for me. What a great guy; I wish we&amp;#8217;d had more time to hang and talk. And there were so many others, like &lt;a href="http://www.derekallard.com/"&gt;Derek Allard&lt;/a&gt;, &lt;a href="http://snook.ca"&gt;Jonathan Snook&lt;/a&gt;, &lt;a href="http://2008.sxsw.com/interactive/programming/panels_schedule/?action=bio&amp;amp;id=171397"&gt;Ken Fisher&lt;/a&gt; (thanks again for dinner Monday night), &lt;a href="http://www.tripledogdaremedia.com/"&gt;Thomas Myer&lt;/a&gt;, &lt;a href="http://2008.sxsw.com/interactive/programming/panels_schedule/?action=bio&amp;amp;id=139146"&gt;C. Eric Smith&lt;/a&gt;, &lt;a href="http://obiefernandez.com/"&gt;Obie Fernandez&lt;/a&gt; (I wish he&amp;#8217;d written Rails), &lt;a href="http://climbtothestars.org/"&gt;Stephanie Booth&lt;/a&gt;, and many others whom I&amp;#8217;m too forgetful to remember at the moment.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="http://2008.sxsw.com/interactive/programming/panels_schedule/?action=bio&amp;amp;id=174538"&gt;Frank Warren&lt;/a&gt;&amp;#8217;s keynote on his &lt;a href="http://postsecret.blogspot.com/"&gt;PostSecret&lt;/a&gt; project was the highlight of SXSW for me. It was funny, tragic, inspiring, and compelling. One could not help but be inspired, as exemplified by the man who asked his love to marry him in front of the entire audience. Technology empowering us to express ourselves, communicate, and aid one another is so much of what the last few years in web dev has been about, and we would do well to follow the example set by Frank Warren.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Oh hell yes I&amp;#8217;m coming back next year&lt;/p&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/jiO8SE1KRHc" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>New Article on Inspekt at C7Y</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/new-article-on-inspekt-at-c7y/" />
      <id>tag:funkatron.com,2008:site/index/1.2420</id>
      <published>2008-02-19T01:50:00Z</published>
      <updated>2008-02-19T01:51:25Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="My Projects" scheme="http://funkatron.com/site/category/my-projects/" label="My Projects" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;Just a quick note that I wrote an article for the new &lt;a href="http://c7y.phparch.com/"&gt;C7Y PHP community site&lt;/a&gt; on &lt;a href="http://inspekt.org"&gt;Inspekt&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://c7y.phparch.com/c/entry/1/art,inspekt-introduction_to_inspekt"&gt;Step Away From the SuperGlobals! An Introduction to Inspekt&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you&amp;#8217;re interested in Inspekt and have questions or would like to contribute, please check out &lt;a href="http://groups.google.com/group/inspekt"&gt;the Inspekt user group&lt;/a&gt;.&lt;/p&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/3nzX7Fh8vj4" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Inspekt 0.3 now available</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/inspekt-03-now-available/" />
      <id>tag:funkatron.com,2008:site/index/1.2417</id>
      <published>2008-01-21T16:56:00Z</published>
      <updated>2008-01-24T21:27:12Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="Inspekt" scheme="http://funkatron.com/site/category/Inspekt/" label="Inspekt" />
      <category term="My Projects" scheme="http://funkatron.com/site/category/my-projects/" label="My Projects" />
      <category term="Development" scheme="http://funkatron.com/site/category/Development/" label="Development" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://inspekt.org"&gt;&lt;img src="/content/inspekt_logo_v1.png" alt="Inspekt" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve uploaded the 0.3 release of &lt;a href="http://inspekt.org" title="the input filtering and validation library for PHP4 and 5"&gt;Inspekt&lt;/a&gt;, the input filtering and validation library for PHP4 and 5. With this release, Inspekt completes the goals of the original specification for the &lt;a href="https://www.owasp.org/"&gt;OWASP&lt;/a&gt; &lt;a href="http://www.owasp.org/index.php/OWASP_Spring_Of_Code_2007_Applications#EdFinkler_-_A_comprehensive_input_retrieval.2Ffiltering_system_for_PHP" title="OWASP Spring Of Code 2007 Applications - OWASP"&gt;SpoC007 project
&lt;/a&gt;. I believe it is ready for &amp;#8220;real-world&amp;#8221; use.&lt;/p&gt;

&lt;p&gt;Along with this release, there are new support and install options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brand new &lt;a href="http://funkatron.com/inspekt/user_docs" title="Inspekt User Docs"&gt;user documentation&lt;/a&gt; - written by an actual human (well, me, so close enough)&lt;/li&gt;
&lt;li&gt;Updated &lt;a href="http://funkatron.com/inspekt/api_docs/" title="Inspekt API Docs"&gt;API documentation&lt;/a&gt; generated with &lt;a href="http://www.phpdoc.org/" title="phpDocumentor: The complete documentation solution for PHP"&gt;phpDocumentor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A PEAR channel (&lt;a href="http://pear.funkatron.com" title="pear.funkatron.com"&gt;pear.funkatron.com&lt;/a&gt;) for quick packaged installs&lt;/li&gt;
&lt;li&gt;A &lt;a href="http://groups.google.com/group/inspekt" title="inspekt | Google Groups"&gt;discussion group/mailing list&lt;/a&gt; for support, suggestions and discussion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What&amp;#8217;s new in this release:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automated filtered via external config files&lt;/li&gt;
&lt;li&gt;Cleanup and fixes to docblocks&lt;/li&gt;
&lt;li&gt;More example code&lt;/li&gt;
&lt;li&gt;&lt;a href="http://groups.google.com/group/inspekt/web/inspekt_logo_v1.png" title="Fruity"&gt;A fruity logo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What&amp;#8217;s in the future:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interact with developers to get feedback and implement suggestions&lt;/li&gt;
&lt;li&gt;Add new options for URI, email, phone # validators&lt;/li&gt;
&lt;li&gt;Work with framework developers to integrate Inspekt with their platforms&lt;/li&gt;
&lt;li&gt;Better support the special requirements of session data&lt;/li&gt;
&lt;li&gt;Integration with PHP5&amp;#8217;s filtering API when available&lt;/li&gt;
&lt;li&gt;Integration with other filtering and escaping systems like &lt;a href="http://php-ids.org/" title="PHPIDS &amp;raquo; Web Application Security 2.0 &amp;raquo; Index"&gt;PHPIDS&lt;/a&gt; and &lt;a href="http://htmlpurifier.org/" title="HTML Purifier - Filter your HTML the standards-compliant way!"&gt;HTML Purifier&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are interested in contributing to Inspekt in &lt;em&gt;any&lt;/em&gt; way, I highly encourage you to &lt;a href="http://groups.google.com/group/inspekt" title="inspekt | Google Groups"&gt;join the mailing list&lt;/a&gt;.  I&amp;#8217;m especially looking for development assistance and &amp;#8220;real-world&amp;#8221; feedback.&lt;/p&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/w0x66d2PGLA" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>php|tek, AIR dev and PHPSecInfo</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/phptek-air-dev-and-phpsecinfo/" />
      <id>tag:funkatron.com,2007:site/index/1.2412</id>
      <published>2007-12-03T17:17:00Z</published>
      <updated>2007-12-03T17:21:07Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="PHPSecInfo" scheme="http://funkatron.com/site/category/PHPSecInfo/" label="PHPSecInfo" />
      <category term="My Projects" scheme="http://funkatron.com/site/category/my-projects/" label="My Projects" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://flickr.com/photos/tychay/1382824242/"&gt;&lt;img src="http://farm2.static.flickr.com/1194/1382824242_a8c1e4075e.jpg" alt="Reinhemer Quad-Core" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clearly the free booze and other gifts provided to the &lt;a href="http://phparch.com"&gt;php|arch&lt;/a&gt; team is paying off, as two of my talks have been accepted for &lt;a href="http://tek.phparch.com/"&gt;php|tek 2008&lt;/a&gt; in Chicago. I&amp;#8217;ll be speaking on desktop app development with &lt;a href="http://adobe.com/go/air"&gt;AIR&lt;/a&gt;, and the &lt;a href="http://phpsecinfo.com"&gt;PHPSecInfo&lt;/a&gt; project.  &lt;a href="http://tek.phparch.com/c/schedule"&gt;The full schedule of talks&lt;/a&gt; will help you plan on how best to avoid me.&lt;/p&gt;

&lt;p&gt;Desktop app dev with &lt;a href="http://adobe.com/go/air"&gt;AIR&lt;/a&gt; has been something near and dear to my heart lately, as I&amp;#8217;ve spent a lot of time in the past several months developing &lt;a href="http://funkatron.com/spaz"&gt;Spaz&lt;/a&gt;, a &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt; client based on AIR.  In the process I&amp;#8217;ve learned a whole heck of a lot about Javascript development, and learned intimately what works well in AIR and what doesn&amp;#8217;t. Combining PHP on the server side and Javascript/HTML on the client side makes a lot of sense for me, then. Getting the two sides to work together has gotten a fair bit easier with the &lt;a href="http://php.net/json"&gt;JSON extension&lt;/a&gt; that was added in PHP 5.2.0.  With that, exchange of data structures carries a lot less overhead.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://phpsecinfo.com"&gt;PHPSecInfo&lt;/a&gt; has been quiet for a while on the development side, but I&amp;#8217;m hoping things will pick up a bit with the introduction of &lt;a href="http://code.google.com/p/phpsecinfo"&gt;public SVN access&lt;/a&gt; to the project. The trunk version has some extra stuff in it, like the beginnings of a new view system to output results in various formats.  I&amp;#8217;ve also added &lt;a href="http://blog.preinheimer.com/"&gt;Paul Reinheimer&lt;/a&gt; as a contributor, so feel free to guilt him into making updates as well.  If you&amp;#8217;re interested in contributing patches or updates to PHPSecInfo, drop me a line and we&amp;#8217;ll chat.&lt;/p&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/p3eWAtS7AYo" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Slides from DC PHP</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/slides-from-dc-php/" />
      <id>tag:funkatron.com,2007:site/index/1.2411</id>
      <published>2007-11-20T04:06:00Z</published>
      <updated>2007-11-20T04:23:33Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="Inspekt" scheme="http://funkatron.com/site/category/Inspekt/" label="Inspekt" />
      <category term="PHPSecInfo" scheme="http://funkatron.com/site/category/PHPSecInfo/" label="PHPSecInfo" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://flickr.com/photos/fihecube/1735391654/"&gt;&lt;img src="http://farm3.static.flickr.com/2250/1735391654_746b2a2964.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maintaining focus has never been one of my strong suits, but I&amp;#8217;ve been doing a fairly bad job of it lately even for me. So, I&amp;#8217;m &lt;em&gt;finally&lt;/em&gt; posting the slides from my two talks a DC PHP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://funkatron.com/content/Securing%20the%20PHP%20Environment%20With%20PhpSecInfo.pdf"&gt;Securing the PHP Environment with PHPSecInfo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://funkatron.com/content/Inspekt-DCPHP-Slides.pdf"&gt;Secure PHP Development with Inspekt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think my talks went okay, but not great. Definitely could have been more prepared and presented more useful information, especially in the Inspekt talk. It&amp;#8217;s the first time I&amp;#8217;ve done a talk on that project, so I still am feeling that one out a bit, whereas I&amp;#8217;ve talked about PHPSecInfo a few times before this.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://dcphpconference.com/"&gt;DC PHP Conference&lt;/a&gt; was a nice surprise. It was clearly still in the learning stages, but everyone was friendly and happy to help, and the organizers definitely seemed interested in sorting out what worked and what didn&amp;#8217;t. I believe they said the next one will be in July 2008; I hope to be there!&lt;/p&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/M0wLNqpMuSM" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>Interview on ArsTechnica about Spaz</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/interview-on-arstechnica-about-spaz/" />
      <id>tag:funkatron.com,2007:site/index/1.2407</id>
      <published>2007-10-12T00:50:00Z</published>
      <updated>2007-10-12T01:05:12Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="My Projects" scheme="http://funkatron.com/site/category/my-projects/" label="My Projects" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="Spaz" scheme="http://funkatron.com/site/category/spaz/" label="Spaz" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://arstechnica.com/journals/apple.ars/2007/10/11/twitter-with-spaz-air-interview-with-dev-ed-finkler"&gt;&lt;img src="http://funkatron.com/images/uploads/interview_ars.png" title="Twitter with Spaz.AIR: Interview with developer Ed Finkler" width="522" height="151" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://arstechnica.com/journals/apple.ars/2007/10/11/twitter-with-spaz-air-interview-with-dev-ed-finkler"&gt;An interview&lt;/a&gt; I did with Jacqui Cheng of &lt;a href="http://arstechnica.com"&gt;ArsTechnica&lt;/a&gt; about &lt;a href="http://funkatron.com/spaz"&gt;Spaz&lt;/a&gt; has been posted tonight.  We get kinda in-depth on the origins of Spaz and the security issues with rich internet applications.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://arstechnica.com/journals/apple.ars/2007/10/11/twitter-with-spaz-air-interview-with-dev-ed-finkler"&gt;&amp;#8220;Twitter with Spaz.AIR: Interview with developer Ed Finkler&amp;#8221;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.digg.com/programming/Twitter_with_Spaz_AIR_Interview_with_developer_Ed_Finkler"&gt;Digg the interview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/ylQwtFUAc5U" height="1" width="1"/&gt;</content>
    </entry>

    <entry>
      <title>PHP|Works 2007: Presentations and Thoughts</title>
      <link rel="alternate" type="text/html" href="http://funkatron.com/site/comments/phpworks-2007-presentations-and-thoughts/" />
      <id>tag:funkatron.com,2007:site/index/1.2370</id>
      <published>2007-09-20T01:30:00Z</published>
      <updated>2007-09-20T02:19:51Z</updated>
      <author>
            <name>funkatron</name>
            <email>coj@funkatron.com</email>
            <uri>http://funkatron.com</uri>      </author>

      <category term="Inspekt" scheme="http://funkatron.com/site/category/Inspekt/" label="Inspekt" />
      <category term="PHPSecInfo" scheme="http://funkatron.com/site/category/PHPSecInfo/" label="PHPSecInfo" />
      <category term="My Projects" scheme="http://funkatron.com/site/category/my-projects/" label="My Projects" />
      <category term="InfoSec" scheme="http://funkatron.com/site/category/InfoSec/" label="InfoSec" />
      <category term="PHP" scheme="http://funkatron.com/site/category/PHP/" label="PHP" />
      <content type="html">
        &lt;p&gt;&lt;a href="http://flickr.com/photos/tychay/1381970953/in/set-72157602016776951"&gt;&lt;img src="http://farm2.static.flickr.com/1226/1381970953_fd15b3e524.jpg" alt="php|works - it's about the booze. Photo by Terry Chay" title="php|works - it's about the booze. Photo by Terry Chay" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://works.phparch.com/"&gt;php|works 2007&lt;/a&gt; was last week, and it was a great experience for me.  Here are the slides and code from the presentations I gave:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://funkatron.com/content/EdFinkler-Introduction%20to%20CodeIgniter.pdf"&gt;Introduction to CodeIgniter&lt;/a&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://funkatron.com/content/CI-talk.zip"&gt;Example app used in talk &amp;#8212; includes CodeIgniter and ZendFramework&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://funkatron.com/content/EdFinkler-Securing%20the%20PHP%20Environment%20With%20PhpSecInfo.pdf"&gt;Securing the PHP Environment With PHPSecInfo&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I really enjoyed my trip to Atlanta and the conference experience. Much like php|tek this year in Chicago, &amp;#8216;works was filled with lots of great content, smart people, and a casual, comfortable atmosphere that makes the whole thing a lot of fun. The &lt;a href="http://phparch.com/"&gt;php|architect&lt;/a&gt; conferences lack pretension, and that&amp;#8217;s really nice &amp;#8212; it&amp;#8217;s about the people and sharing knowledge. And this one was really special for me because it&amp;#8217;s the first time I&amp;#8217;ve given a presentation to my colleagues in the community.  I was very nervous, but it all turned out well.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m too &lt;strike&gt;lazy&lt;/strike&gt; busy to write out an extended journal of the whole experience, but here are some memorable moments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Being sick just two days before I was about to leave, and getting better just in time to go&lt;/li&gt;
&lt;li&gt;Having my first flight cancelled, giving me time to mostly finish my CodeIgniter talk before I left the Indy airport&lt;/li&gt;
&lt;li&gt;Getting to the hotel just in time to catch &lt;a href="http://shiflett.org/"&gt;Chris Shiflett&lt;/a&gt;&amp;#8217;s funny PHP4 is Dead keynote&lt;/li&gt;
&lt;li&gt;Discovering the hotel room had a flat-panel TV. Unfortunately, no HD content&lt;/li&gt;
&lt;li&gt;Catching up with Lucas Nealan, and getting an unexpected phonecall with great news&lt;/li&gt;
&lt;li&gt;The fact that there were about 7,000 iPhones on-hand&lt;/li&gt;
&lt;li&gt;The &lt;a href="http://www.preinheimer.com/"&gt;Paul Reinheimer&lt;/a&gt; quad-core drinking demo (sponsored by Microsoft)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Ramblecast&lt;/em&gt;: the loudest, drunkest, least productive group podcasting experiment ever&lt;/li&gt;
&lt;li&gt;Learning a lot more about &lt;a href="http://php.net/filter"&gt;the Filter extension&lt;/a&gt; from &lt;a href="http://www.derickrethans.nl/"&gt;Derick Rethans&lt;/a&gt;, and seeing how it compares to &lt;a href="http://inspekt.org"&gt;Inspekt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Losing power in the middle of my &lt;a href="http://phpsecinfo.com"&gt;PHPSecInfo&lt;/a&gt; talk, and &lt;a href="http://paul-m-jones.com/"&gt;Paul M. Jones&lt;/a&gt; resuscitating the projector&lt;/li&gt;
&lt;li&gt;&lt;a href="http://terrychay.com"&gt;Terry Chay&lt;/a&gt;&amp;#8217;s software architecture talk. I didn&amp;#8217;t agree with everything he said, but I laughed my ass off&lt;/li&gt;
&lt;li&gt;Meeting people who have actually heard of me and used tools I&amp;#8217;ve made. Weird&lt;/li&gt;
&lt;li&gt;Good conversations with too many people to name&lt;/li&gt;
&lt;/ul&gt;
 
      &lt;img src="http://feeds.feedburner.com/~r/FunkatroncomInfosecPosts/~4/CM5HGfSZm2k" height="1" width="1"/&gt;</content>
    </entry>


</feed>
