<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <lastBuildDate>Wed, 01 Feb 2023 16:19:30 GMT</lastBuildDate>
    <category>Meta</category>
    <category>PHP</category>
    <category>Year In Review</category>
    <category>Anti-Pattern</category>
    <category>Architecture</category>
    <category>Best Practice</category>
    <category>Framework</category>
    <category>MVC</category>
    <category>Object Oriented Programming</category>
    <category>Programming</category>
    <category>Rant</category>
    <category>Composition</category>
    <category>Design Patterns</category>
    <category>Good Enough</category>
    <category>PHP-FIG</category>
    <category>Anatomy of an Attack</category>
    <category>Drupal</category>
    <category>Security</category>
    <category>Password-Hashing</category>
    <category>StackOverflow</category>
    <category>Middleware</category>
    <category>Open Standards</category>
    <category>Language Agnostic</category>
    <category>Community</category>
    <category>Forward Compatibility</category>
    <category>Philosophy</category>
    <category>HHVM</category>
    <category>Open Source</category>
    <category>Library</category>
    <category>Traits</category>
    <category>Change</category>
    <category>Learning</category>
    <category>Programming With Anthony</category>
    <category>Video</category>
    <category>PHP-Versions</category>
    <category>Beyond</category>
    <category>Unit Testing</category>
    <category>Functional Programming</category>
    <category>Build</category>
    <category>CryptLib</category>
    <category>Jenkins</category>
    <category>PasswordLib</category>
    <category>8-bit Computer</category>
    <category>Arduino</category>
    <category>Computer</category>
    <category>Design</category>
    <category>Hardware</category>
    <category>Hobby</category>
    <category>Logic Gates</category>
    <category>Passion</category>
    <category>Compiler</category>
    <category>libjit</category>
    <category>libgccjit</category>
    <category>llvm</category>
    <category>Optimization</category>
    <category>Performance</category>
    <category>Recki-CT</category>
    <category>Answers</category>
    <category>Database</category>
    <category>Email Response</category>
    <category>Dependency Injection</category>
    <category>PHP-Internals</category>
    <category>Code Review</category>
    <category>Conference</category>
    <category>Presentation</category>
    <category>Slides</category>
    <category>Analysis</category>
    <category>Engineering</category>
    <category>Mathematics</category>
    <category>Types</category>
    <category>Disclosure</category>
    <category>SQL Injection</category>
    <category>Silly</category>
    <category>Cryptography</category>
    <category>CSRF</category>
    <category>XSS</category>
    <category>Education</category>
    <category>Exceptions</category>
    <category>Response</category>
    <category>Anti-Paradigm</category>
    <category>Micro Framework</category>
    <category>Internet</category>
    <category>Trolls</category>
    <category>Google Glass</category>
    <category>Review</category>
    <category>Events</category>
    <category>WTF</category>
    <category>Interviews</category>
    <category>JitFu</category>
    <category>Autoloading</category>
    <category>Inconsistencies</category>
    <category>Weird Behavior</category>
    <category>Timing-Attack</category>
    <category>Closures</category>
    <category>Career</category>
    <category>Large Scale Applications</category>
    <category>Global Variables</category>
    <category>Sexism</category>
    <category>WordPress</category>
    <category>Templates</category>
    <category>Economics</category>
    <category>Procedural Programming</category>
    <category>BCrypt</category>
    <category>Rainbow Table</category>
    <category>PHP Source Code For PHP Developers Series</category>
    <category>Data Structures</category>
    <category>Lexer</category>
    <category>Parser</category>
    <category>Radix Tree</category>
    <category>Routing</category>
    <category>Trie</category>
    <category>Logic</category>
    <category>Responsive Design</category>
    <category>Web Design</category>
    <category>Javascript</category>
    <category>Promise</category>
    <category>Ruby-On-Rails</category>
    <category>Ruby</category>
    <category>Random</category>
    <category>Language-Design</category>
    <category>Scalar</category>
    <category>Books</category>
    <category>External-Post</category>
    <category>Monads</category>
    <category>API</category>
    <category>Comments</category>
    <category>Iterators</category>
    <category>Thoughts</category>
    <category>Trust</category>
    <category>Generators</category>
    <category>Web Application Security Series</category>
    <category>Work</category>
    <category>Networking</category>
    <category>Wiring</category>
    <category>IT</category>
    <category>Home</category>
    <category>Agile</category>
    <category>Scrum</category>
    
    <title>ircmaxell&#39;s Blog</title>
    <description>A blog about PHP, Security, Performance and general web application development.</description>
    <link>https://blog.ircmaxell.com/</link>
    <managingEditor>me@ircmaxell.com (Anthony Ferrara)</managingEditor>
    <generator>hexo</generator>


    
    <item>
      <guid>https://blog.ircmaxell.com//2021/02/wiring-home-network.html</guid>
      <pubDate>Mon, 01 Feb 2021 05:00:00 GMT</pubDate>
      <category>Networking</category>
      <category>Wiring</category>
      <category>IT</category>
      <category>Home</category>
      
      <title>Wiring a Home Network</title>
      <description>
      
        &lt;p&gt;Last year, my partner and I moved into a new (to us) house. One of the first things I needed to get done was to get our home network setup as we both were (still are) working from home due to COVID-19. This post will explore some of that process, some of the decisions I made along the way, what I learned, and some details on the end setup.&lt;br&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2021/02/wiring-home-network.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2019/04/compilers-ffi.html</guid>
      <pubDate>Mon, 22 Apr 2019 04:00:00 GMT</pubDate>
      <category>PHP</category>
      <category>HHVM</category>
      <category>Open Source</category>
      <category>Compiler</category>
      <category>libjit</category>
      <category>libgccjit</category>
      <category>llvm</category>
      <category>Optimization</category>
      <category>Performance</category>
      <category>Recki-CT</category>
      
      <title>A PHP Compiler, aka The FFI Rabbit Hole</title>
      <description>
      
        &lt;p&gt;It’s no secret that I’m into building toy compilers and programming languages. Today I’m introducing something that’s not a toy (I hope). Today, I’m introducing &lt;a href=&quot;https://github.com/ircmaxell/php-compiler&quot;&gt;php-compiler&lt;/a&gt; (among many other projects). My hope is that these projects will grow from experimental status into fully production ready systems.&lt;br&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2019/04/compilers-ffi.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2018/06/protecting-rails-xss.html</guid>
      <pubDate>Thu, 21 Jun 2018 04:00:00 GMT</pubDate>
      <category>Programming</category>
      <category>Security</category>
      <category>XSS</category>
      <category>Ruby-On-Rails</category>
      <category>Ruby</category>
      
      <title>Protecting Against XSS In RAILS - JavaScript Contexts</title>
      <description>
      
        &lt;p&gt;Recently my team was working to implement &lt;a href=&quot;https://github.com/presidentbeef/brakeman&quot;&gt;Brakeman&lt;/a&gt; in our CI processes to automatically scan our codebase for security vulnerabilities. Among a few other issues, it identified a handful of similar XSS vulnerabilities of a similar pattern:&lt;/p&gt;
&lt;pre class=&quot;line-numbers language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text/javascript&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script language-javascript&quot;&gt;
  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; FOO &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;%= raw whatever %&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  ReactDOM&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;Blah
    foo&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;FOO&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;some_place&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a pretty straight forward vulnerability, since passing &lt;code&gt;&amp;quot;; alert(1); &amp;quot;&lt;/code&gt; for &lt;code&gt;whatever&lt;/code&gt; will result in the code being rendered as &lt;code&gt;var FOO = &amp;quot;&amp;quot;; alert(1); &amp;quot;&amp;quot;;&lt;/code&gt; which isn’t good.&lt;/p&gt;
&lt;p&gt;The fix, isn’t so simple. I’ve searched high and low, and couldn’t find a single source that had the correct solution to the problem. So here it is…&lt;br&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2018/06/protecting-rails-xss.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2017/10/disclosure-wordpress-wpdb-sql-injection-technical.html</guid>
      <pubDate>Tue, 31 Oct 2017 04:00:00 GMT</pubDate>
      <category>PHP</category>
      <category>Security</category>
      <category>Open Source</category>
      <category>Disclosure</category>
      <category>SQL Injection</category>
      
      <title>Disclosure: WordPress WPDB SQL Injection - Technical</title>
      <description>
      
        &lt;p&gt;Today, a significant SQL-Injection vulnerability was fixed in WordPress 4.8.3. Before reading further, if you haven’t updated yet stop right now and update.&lt;/p&gt;
&lt;p&gt;The foundations of this vulnerability was reported via Hacker-One on September 20th, 2017.&lt;/p&gt;
&lt;p&gt;This post will detail the technical vulnerability as well as how to mitigate it. There is another post which deals with the &lt;a href=&quot;/2017/10/disclosure-wordpress-wpdb-sql-injection-background.html&quot;&gt;background and time-lines&lt;/a&gt;.&lt;br&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2017/10/disclosure-wordpress-wpdb-sql-injection-technical.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2017/10/disclosure-wordpress-wpdb-sql-injection-background.html</guid>
      <pubDate>Fri, 27 Oct 2017 04:00:00 GMT</pubDate>
      <category>PHP</category>
      <category>Security</category>
      <category>Open Source</category>
      <category>Disclosure</category>
      <category>SQL Injection</category>
      
      <title>Disclosure: WordPress WPDB SQL Injection - Background</title>
      <description>
      
        &lt;p&gt;Today, a significant SQL-Injection vulnerability was fixed in WordPress 4.8.3. Before reading further, if you haven’t updated yet stop right now and update.&lt;/p&gt;
&lt;p&gt;The foundations of this vulnerability was reported via Hacker-One on September 20th, 2017.&lt;/p&gt;
&lt;p&gt;This post will detail the background on the vulnerability as well as why I publicly threatened to Fully Disclose. There is another post which deals with the &lt;a href=&quot;/2017/10/disclosure-wordpress-wpdb-sql-injection-technical.html&quot;&gt;technical vulnerability&lt;/a&gt;.&lt;br&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2017/10/disclosure-wordpress-wpdb-sql-injection-background.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2017/07/ponderings-on-odoriferous-syntactical.html</guid>
      <pubDate>Mon, 31 Jul 2017 04:00:00 GMT</pubDate>
      <category>PHP</category>
      <category>Anti-Pattern</category>
      <category>Architecture</category>
      <category>Object Oriented Programming</category>
      <category>Programming</category>
      <category>Rant</category>
      <category>Functional Programming</category>
      <category>Design</category>
      
      <title>Ponderings on Odoriferous Syntactical Constructifications</title>
      <description>
      
        &lt;p&gt;(AKA: “Thoughts on code smells” and how &lt;em&gt;“high brow”&lt;/em&gt; they have become)&lt;/p&gt;
&lt;p&gt;We have a habit of talking about “code smells” to indicate patterns and practices that our experience has shown can be problematic. Many of these “smells” are backed by a lot of data and really are legitimate problems to avoid. These are constructs and tools that often have few legitimate uses. But many so called “smells” really aren’t significantly bad. Let’s dive into some of the nuance here and talk a bit about why our word choice matters.&lt;br&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2017/07/ponderings-on-odoriferous-syntactical.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2017/02/building-8-bit-computer.html</guid>
      <pubDate>Wed, 08 Feb 2017 05:00:00 GMT</pubDate>
      <category>Programming</category>
      <category>8-bit Computer</category>
      <category>Arduino</category>
      <category>Computer</category>
      <category>Design</category>
      <category>Hardware</category>
      <category>Hobby</category>
      <category>Logic Gates</category>
      <category>Passion</category>
      
      <title>Building an 8-bit Computer</title>
      <description>
      
        &lt;p&gt;I have been building a computer. Not assembling components, but actually designing and wiring it from scratch onto prototyping breadboards. I’ve decided to start writing about the project here on my blog. I have no idea how many posts this will wind up being, or if there even will be others. Let me start by telling you what I’m building.&lt;br&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2017/02/building-8-bit-computer.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2017/01/trust.html</guid>
      <pubDate>Thu, 12 Jan 2017 05:00:00 GMT</pubDate>
      <category>PHP</category>
      <category>Security</category>
      <category>Thoughts</category>
      <category>Trust</category>
      
      <title>Trust</title>
      <description>
      
        &lt;p&gt;Stop and take a moment to think about how much trust is required to live your everyday life. Every single aspect of your life is built up on layer after layer of trust, it’s nothing short of staggering. Different aspects of life will contain different levels of trust, with some being very guarded and some being very lax. We don’t often talk about this trust and we often make the blind assumption that trust is inherently a bad thing. That’s most definitely not the case. Let’s explore why.&lt;/p&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2017/01/trust.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2016/05/all-about-middleware.html</guid>
      <pubDate>Fri, 20 May 2016 04:00:00 GMT</pubDate>
      <category>PHP</category>
      <category>Object Oriented Programming</category>
      <category>Rant</category>
      <category>Design Patterns</category>
      <category>PHP-FIG</category>
      <category>Middleware</category>
      <category>Open Standards</category>
      
      <title>All About Middleware</title>
      <description>
      
        &lt;p&gt;Last week, &lt;a href=&quot;https://github.com/php-fig/fig-standards/pull/755&quot;&gt;a proposal&lt;/a&gt; to standardize middleware for &lt;a href=&quot;http://www.php-fig.org/psr/psr-7/&quot;&gt;PSR-7&lt;/a&gt; was introduced to the PHP-FIG. The general concept of middleware is not a new one, and has been in use in the PHP world for many years. Several people have raised significant concerns with the proposal, which have gone completely unheeded by the author. Let me go through the most major of these concerns, as well as show what a better proposal might look like.&lt;/p&gt;
&lt;p&gt;*Note: All code that will be used in this post is real-world code found in the wild (and linked to) with one exception (&lt;code&gt;X-Powered-By&lt;/code&gt;).&lt;/p&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2016/05/all-about-middleware.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
    <item>
      <guid>https://blog.ircmaxell.com//2015/11/simple-easy-risk-and-change.html</guid>
      <pubDate>Mon, 02 Nov 2015 05:00:00 GMT</pubDate>
      <category>PHP</category>
      <category>Architecture</category>
      <category>Best Practice</category>
      <category>Framework</category>
      <category>Programming</category>
      <category>Beyond</category>
      
      <title>Simple, Easy, Risk and Change</title>
      <description>
      
        &lt;p&gt;I’ve been thinking a lot about change lately. Things finally resonated to me after listening to &lt;a href=&quot;https://www.youtube.com/watch?v=7gv6oK8nAzE&quot;&gt;Uncle Bob Martin on No Capes&lt;/a&gt;. He made an amazingly interesting point about change and different methods for minimizing the risk over time of change.&lt;/p&gt;
&lt;p&gt;I want to share some of what I’ve been thinking about along those lines. What follows is a collection of some of my evolving thoughts relating to change and complexity. Let me know your thoughts in the comments.&lt;/p&gt;
      
      </description>
      <link>https://blog.ircmaxell.com//2015/11/simple-easy-risk-and-change.html</link>
      <author>me@ircmaxell.com (Anthony Ferrara)</author>

    </item>
    
  </channel>
</rss>