<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jason King Studios - Branding, Web, Design, Interactive - Princeton NJ</title>
	<atom:link href="http://www.jasonkingstudios.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonkingstudios.com</link>
	<description>Branding - Design - Interactive</description>
	<lastBuildDate>Tue, 03 Jan 2012 17:32:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Chris Suchorsky</title>
		<link>http://www.jasonkingstudios.com/portfolio/chris-suchorsky/</link>
		<comments>http://www.jasonkingstudios.com/portfolio/chris-suchorsky/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 17:21:39 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Art Direction]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.cab408.com/studios/?p=6519</guid>
		<description><![CDATA[Chris Suchorsky is an independent documentary filmmaker who has won numerous awards for his work. Jason King Studios contributed the art direction, design and html/css production for the site. Visit the Site: www.ChrisSuchorsky.com.com]]></description>
			<content:encoded><![CDATA[<p>Chris Suchorsky is an independent documentary filmmaker who has won numerous awards for his work.<span id="more-6519"></span></p>
<p>Jason King Studios contributed the art direction, design and html/css production for the site.</p>
<p>Visit the Site: <a href="http://www.chrissuchorsky.com">www.ChrisSuchorsky.com.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/portfolio/chris-suchorsky/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Self-Promotion: Business Cards</title>
		<link>http://www.jasonkingstudios.com/blog/design-projects/self-promotion-business-cards/</link>
		<comments>http://www.jasonkingstudios.com/blog/design-projects/self-promotion-business-cards/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 05:39:54 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Design Projects]]></category>

		<guid isPermaLink="false">http://www.cab408.com/studios/?p=6465</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jasonkingstudios.com/files/2010/06/business-cards_03.jpg" rel="wp-prettyPhoto[g6465]"><img class="alignnone size-large wp-image-6470" title="business-cards_03" src="http://www.jasonkingstudios.com/files/2010/06/business-cards_03-524x390.jpg" alt="" width="524" height="390" /></a></p>
<p><a href="http://www.jasonkingstudios.com/files/2010/06/business-cards_06.jpg" rel="wp-prettyPhoto[g6465]"><img class="alignnone size-large wp-image-6471" title="business-cards_06" src="http://www.jasonkingstudios.com/files/2010/06/business-cards_06-520x390.jpg" alt="" width="520" height="390" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/blog/design-projects/self-promotion-business-cards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE CSS Tip #1: Position Relative Overflow</title>
		<link>http://www.jasonkingstudios.com/blog/css-tips/ie-css-tip-1-position-relative-overflow/</link>
		<comments>http://www.jasonkingstudios.com/blog/css-tips/ie-css-tip-1-position-relative-overflow/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 18:29:39 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[CSS Tips]]></category>

		<guid isPermaLink="false">http://www.cab408.com/studios/?p=6457</guid>
		<description><![CDATA[In the portfolio section of this site I decided I wanted to be able to align the thumbnails either to the top, middle or bottom of their frame. That way I could very simply create better looking thumbnails just by a little css positioning. Unfortunately, unlike every other modern browser, IE requires a little extra [...]]]></description>
			<content:encoded><![CDATA[<p>In the portfolio section of this site I decided I wanted to be able to align the thumbnails either to the top, middle or bottom of their frame. That way I could very simply create better looking thumbnails just by a little css positioning. Unfortunately, unlike every other modern browser, IE requires a little extra love to make it work. The solution, however, is simple. Set the position of the container div to relative i.e. &#8220;position:relative;&#8221; Thanks goes to <a href="http://snook.ca/archives/html_and_css/position_relative_overflow_ie/" target="_blank">Jonathan Snook</a> for providing this tip on his website. Please see his site for the original tip.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/blog/css-tips/ie-css-tip-1-position-relative-overflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coda: Web Development for the Mac</title>
		<link>http://www.jasonkingstudios.com/blog/developers-toolbox/best-mac-web-development-app/</link>
		<comments>http://www.jasonkingstudios.com/blog/developers-toolbox/best-mac-web-development-app/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 18:02:00 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Developer's Toolbox]]></category>
		<category><![CDATA[mac software]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.jasonkingstudios.com/?p=5412</guid>
		<description><![CDATA[I&#8217;ve been developing web sites since 1997. I started with a Pentium 150 with 32MB RAM running Windows 95. Notepad was the editor of choice and WS-FTP was what we used to upload files to the production server. It was a beastly setup, but exciting times. I moved on through several home-brewed Windows systems and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/studios/2010/06/10/best-mac-web-development-app/"><img class="alignright size-full wp-image-5461" src="/studios/files/2010/06/one-big-header.png" alt="" width="584" height="211" /></a></p>
<p>I&#8217;ve been developing web sites since 1997. I started with a Pentium 150 with 32MB RAM running Windows 95. Notepad was the editor of choice and WS-FTP was what we used to upload files to the production server. It was a beastly setup, but exciting times. I moved on through several home-brewed Windows systems and a few product cycles of Allaire&#8217;s Homesite and then Macromedia&#8217;s Dreamweaver before switching to a Mac in 2006. Since Adobe had bought Macromedia and I used Adobe&#8217;s Creative Suite for the rest of my work I ended up using Dreamweaver for a while, reasoning that I owned it and it was &#8220;supposed&#8221; to be good. It sufficed as a code editor but I found the additional &#8220;features&#8221; packed into it and the poor interface a real distraction and hindrance to my workflow. I decided to look around for alternatives and found that the developers of the FTP client Transmit, which I use, had developed a web site coding environment called Coda.</p>
<p><span id="more-5412"></span></p>
<p>Panic&#8217;s Coda features a tight-knit elegant user-interface which perfectly suits the way I work. Coda plays nicely with my development server, MAMP, handles Subversion repository check-in and out, features Panic&#8217;s Transmit FTP-engine, has site management capabilities including a built-in Terminal for quick SSH access to a server and all of that&#8217;s without even getting into the actual coding environment which I will get to later.</p>
<h2>Using Coda for Web Site Management</h2>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-sites-add.jpg" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5431" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-sites-add-584x390.jpg" alt="" width="272" /></a>Coda is predominantly a web site development environment and as such it provides a method and interface for managing multiple web site projects. Once you create a site by either importing one of your Transmit favorites or setting one up from scratch, Coda presents you with a screen of thumbnails representing your sites. You can either choose your own thumbnail or Coda will use it&#8217;s built in webkit rendering engine to create one from the home page of your live site.</p>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-sites.jpg" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5430" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-sites-584x390.jpg" alt="" width="272" /></a>Coda&#8217;s site information includes live and local URLs and roots which allow Coda to track and publish changes between your local development site and a production site on a remote server. There&#8217;s also support for FTP, sFTP, and WebDAV connections and Coda will save your authentication information in your system keychain. You can also store SSH credentials and manage the entire site as a Subversion repository checkout if you desire. I&#8217;m fond of the simplicity with which Coda approaches site management. While the thumbnails themselves border on the hokey with taped up corners and a slight curl at the bottom, overall I like being able to see a visual representation of my projects, double click one and begin working.</p>
<h2>Coda&#8217;s Editor Mode Is Defined by Simplicity</h2>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-edit.jpg" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5442" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-edit-586x390.jpg" alt="" width="272" /></a>Once you&#8217;ve created a site you can double-click the thumbnail image to enter the edit mode. The file browser on the left will automatically switch to the local root directory you have specified and you will also be able to change to the remote root via the built in ftp module. Files opened from the remote root will be transferred immediately upon saving them.</p>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-editor-clips.jpg" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5441" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-editor-clips-586x390.jpg" alt="" width="272" /></a>Several syntax modes are available by default including HTML, PHP, CSS, Actionscript, Javascript, Perl and Ruby. The syntax modes include automatic text color-coding and syntax completion. Additional syntax modes supporting third-party software such as WordPress and Drupal are also available in the developer community. Coda&#8217;s edit mode also supports sharing documents via Bonjour, programming hints, HTML validation and a code snippet/clipboard manager. Line numbers and invisible characters can be toggled on or off and a code navigator makes working with large files more manageable.</p>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-editor-find.png" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5449" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-editor-find-585x390.png" alt=""  width="272" /></a>Coda also has a great find and replace feature. As with most editors you can choose to find and replace in open documents, documents within a specific directory or documents within the entire site. Coda also has the ability find and replace matches based upon standard perl style regular expressions and its own built in wildcard variables.</p>
<h2>Coda&#8217;s Preview Holds A Few Surprises</h2>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-preview1.png" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5476" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-preview1-584x390.png" alt="" width="272" /></a>Having used Coda for the last two years I was recently surprised to learn how powerful Coda&#8217;s built-in preview function really is. Built on the open-source WebKit rendering engine, the same one used by Apple&#8217;s Safari and Google&#8217;s Chrome to render web pages in the browser. Coda&#8217;s preview includes the ability to view the rendered source of a URL, track javascript errors with a console debugger, launch the URL in any other installed web browsers including IE and other Windows browsers (if you are using VMWare Fusion) and comes complete with a handy DOM inspector which although broken at the moment by the release of Safari 5 gives you the option to inspect any element in the DOM with Safari&#8217;s developer tool: Web Inspector&#8230;very handy indeed. Once in preview mode just click on the magnifying glass in the bottom bar and then hover over the element on the page you wish to inspect. Clicking on the element will lock the highlight on that element and then display the DOM hierarchy in a breadcrumb style at the bottom of the window.</p>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-preview-split.png" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5466" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-preview-split-584x390.png" alt="" width="272" /></a>Coda also has the ability to provide a split pane view so that you can work on the same document in different places, work on two different documents at the same time or work on a document and preview the site at the same time. I find the last option particularly handy when making changes to the site&#8217;s CSS as I can use the DOM browser to inspect an element and then after seeing all the CSS rules that a particular selector is inheriting its style from make the necessary changes in the stylesheet.</p>
<h2>Edit Stylesheets with Style</h2>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-css.png" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5474" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-css-584x390.png" alt="" width="272" /></a>Coda offers two ways to edit and create stylesheets. Hand-code them in the editor or use the built-in CSS editor to organize your styles and set attributes with the handy visual editor. You can use the CSS selector browser to visually organize your stylesheet selectors. Each selector&#8217;s name is displayed using the corresponding text and color attributes from the CSS making it very easy to identify typographical and colored styles, but unfortunately other attributes like padding, margin, position, etc. are not possible to display with this method leaving some of the style selectors as plain text.</p>
<h2>Coda&#8217;s Built In Terminal</h2>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-terminal.png" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5485" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-terminal-583x390.png" alt="" width="272" /></a>Coda&#8217;s Terminal view provides quick access to a local or remote SSH session. Since each Site managed by Coda has the option to store this information securely in the system keychain it provides a fast and convenient way of accessing remote servers via SSH and replaces the need for a separate terminal window.</p>
<h2>A Web Developer&#8217;s Reference Library</h2>
<p><a href="http://www.cab408.com/design/files/2010/06/coda-books.png" rel="wp-prettyPhoto[g5412]"><img class="alignright wp-image-5487" src="http://www.jasonkingstudios.com/wordpress/wp-content/uploads/2010/06/coda-books-583x390.png" alt="" width="272" /></a>Panic decided to round the whole One Window Development environment out with a neat feature called Books. Coda comes with PHP, HTML, CSS and Javascript references built into its library and gives the user the ability to add other books, websites and documentation via their URLs. These sit along with the built-in documentation in a page format similar to that from the Sites Management view. The user can define a thumbnail to be used as the Book&#8217;s cover art and associate the book with one of the syntax definitions. There is also an option to provide a formatted search URL. By holding down command and double-clicking a word Coda will look up the word in the Book associated with that syntax mode.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/blog/developers-toolbox/best-mac-web-development-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NYMSTF</title>
		<link>http://www.jasonkingstudios.com/portfolio/nymstf/</link>
		<comments>http://www.jasonkingstudios.com/portfolio/nymstf/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 14:05:48 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Art Direction]]></category>

		<guid isPermaLink="false">http://www.cab408.com/?p=2392</guid>
		<description><![CDATA[The New York Motorcycle and Scooter Task Force is a non-profit organization that advocates for motorcyclists through political action.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.nymstf.org">New York Motorcycle and Scooter Task Force</a> is a non-profit organization that advocates for motorcyclists through political action. As part of their ongoing efforts to create a motorcyclist friendly environment in new york city they sought help creating a website that would enhance their image<span id="more-2392"></span> and assist them in accomplishing their goals.</p>
<p>Jason King Studios provided the two design concepts you see here, pro bono, likewise another member of the organization provided his time for the production and coding of the site.</p>
<p>Visit the Site: <a href="http://www.nymstf.org">www.NYMSTF.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/portfolio/nymstf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snap311</title>
		<link>http://www.jasonkingstudios.com/portfolio/snap311/</link>
		<comments>http://www.jasonkingstudios.com/portfolio/snap311/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 00:30:16 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Art Direction]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.jasonkingstudios.com/?p=2373</guid>
		<description><![CDATA[Snap311 was developed as an entry in the NYC Big Apps contest. It makes reporting a problem to NYC's 311 service easy.]]></description>
			<content:encoded><![CDATA[<p>Snap311 was developed as an entry in the NYC Big Apps contest. It makes reporting a problem to NYC&#8217;s 311 service easy by allowing anybody to use their camera and web enabled mobile phone to file their report. The concept and application portion of Snap311 were developed by some friends at The Erlbaum Group.<span id="more-2373"></span></p>
<p>Jason King Studios contributed the art direction, design and html/css production for the site.</p>
<p>Visit the Site: <a href="http://www.snap311.com">www.Snap311.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/portfolio/snap311/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LockerShelf</title>
		<link>http://www.jasonkingstudios.com/portfolio/lockershelf/</link>
		<comments>http://www.jasonkingstudios.com/portfolio/lockershelf/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 12:04:21 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Art Direction]]></category>
		<category><![CDATA[Brochure]]></category>
		<category><![CDATA[Logo]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.cab408.com/?p=1086</guid>
		<description><![CDATA[The LockerShelf Company sells a patented locker shelving system that comes in three sizes designed to fit standard 9", 12" and 15" lockers.]]></description>
			<content:encoded><![CDATA[<p>The LockerShelf Company sells a patented locker shelving system that comes in three sizes designed to fit standard 9&#8243;, 12&#8243; and 15&#8243; lockers. The LockerShelf is very easy to install and remove because of its unique, patented slide-in design.<span id="more-1086"></span></p>
<p>Jason King Studios was hired to provide a complete identity design and online store while the product was still in its conceptual phase. Jason worked around the clock with the client to take their idea and make it into a tangible product, providing art direction, logo and identity design, brochure design, packaging design and an ecommerce-enabled website.</p>
<p>Visit the Site: <a href="http://www.lockershelfco.com">www.LockerShelfCo.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/portfolio/lockershelf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Juris Imaging &amp; Graphics</title>
		<link>http://www.jasonkingstudios.com/portfolio/juris-imaging-graphics/</link>
		<comments>http://www.jasonkingstudios.com/portfolio/juris-imaging-graphics/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 13:14:44 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Art Direction]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.cab408.com/?p=4437</guid>
		<description><![CDATA[Juris is a litigation support firm with offices in Orlando, FL and Miami, FL.]]></description>
			<content:encoded><![CDATA[<p>Juris is a litigation support firm with offices in Orlando, FL and Miami, FL. They sought a website that would help them market their document &amp; image management, graphic and video production, training and support services. The result was a site that presents their company with a clean and professional image.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/portfolio/juris-imaging-graphics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sakura Express</title>
		<link>http://www.jasonkingstudios.com/portfolio/sakura-express/</link>
		<comments>http://www.jasonkingstudios.com/portfolio/sakura-express/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 08:34:24 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Art Direction]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Logo]]></category>

		<guid isPermaLink="false">http://www.cab408.com/?p=3164</guid>
		<description><![CDATA[Web design and coding for Sakura Express, a sushi restaurant in downtown Princeton, NJ.]]></description>
			<content:encoded><![CDATA[<p>Web design and coding for Sakura Express, a sushi restaurant in downtown Princeton, NJ. Sakura is proud to be a &#8220;hole-in-the-wall&#8221; sushi joint and wanted a website that reflected their utilitarian philosophy so we developed a one page site/menu made customer-friendly and dynamic with a dash of javscript to allow customers<span id="more-3164"></span> to scroll the menu and highlight raw and vegetarian dishes for their convenience.</p>
<p><a href="http://www.sakuraexpressprinceton.com">www.SakuraExpressPrinceton.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/portfolio/sakura-express/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache Mod_Security: Whitelisting WordPress</title>
		<link>http://www.jasonkingstudios.com/blog/apache-mod_security-whitelisting-wordpress/</link>
		<comments>http://www.jasonkingstudios.com/blog/apache-mod_security-whitelisting-wordpress/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 15:15:22 +0000</pubDate>
		<dc:creator>jasonking</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_security]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.cab408.com/studios/?p=6450</guid>
		<description><![CDATA[Preface This post is inspired by the true events of March 26, 2009 as a fellow web developer and I spent the better part of the day working out why the web server his installation of WordPress lives on was returning a 500 Internal Server Error whenever he tried to create a new Page by [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Preface</strong></p>
<p>This post is inspired by the true events of March 26, 2009 as a fellow web developer and I spent the better part of the day working out why the web server his installation of WordPress lives on was returning a 500 Internal Server Error whenever he tried to create a new Page by cutting and pasting HTML. It turns out a poorly formed rule in the default cPanel Mod_Security installation was throwing false positives as it matched the content of what he was posting to a rule denying a specific kind of SQL Injection Attack. But as is often the case in the behind-the-scenes world of web development one solution only leads to a new problem. This account is posted to document the problem(s) and solution(s) we worked out that day.<span id="more-6450"></span></p>
<p><strong>“/wp-admin/page.php” and the Dread 500 Server Error</strong></p>
<p>If you’ve ever gotten 500 Server Errors while posting to your blog, forum, CMS, shopping cart or other web application there’s a very good chance you’ve been caught by a poorly formed rule in your server’s mod_security configuration. While a thorough accounting of mod_security is beyond the purview of this post let it suffice to say that for those who aren’t familiar with it, mod_security is a firewall for web applications (Read More: ModSecurity.org). ModSecurity is an Apache module which attempts to prevent malicious execution of code by filtering all requests to the server through its rulesets. It works by matching incoming requests against patterns designed to catch code that could compromise or otherwise harm a website or the server itself.</p>
<p>On closer examination of the mod_security log file you will probably find something that looks like this:</p>
<p><code>Access denied with code 500 (phase 2). Pattern match "(insert[[:space:]]+into.+values|select.*from.+[a-z|A-Z|0-9]|select.+from|bulk[[:space:]]+insert|union.+select|convert.+\\(.*from)” at ARGS:content. [id "300016"] [rev "2"] [msg "Generic SQL injection protection"] [severity "CRITICAL"]</code></p>
<p>That is the rule that is causing the false positive. You should also see a line that looks very familiar because it’s the path and parameters of the file the web application you are using is trying to POST to.</p>
<p>Overall, ModSecurity is an extremely effective tool when it comes to preventing SQL Injection attacks, however, every once in a while it can be the cause of extreme frustration as you helplessly try to figure out why all of a sudden you are getting a 500 Internal Server Error instead of the success screen you expect after posting your latest to WordPress, Zen-Cart, phpBB or any of the other widely available open source web applications. And because Mod_security is so ubiquitous, quietly humming away in the background, as you go about your business, you may go months or even years without running into a problem with it and by that time you of course will be completely stumped, you may even start thinking up crazy explanations for what’s causing the problem. You may be told to reinstall your cms, blog, forum, etc. Maybe there’s a corrupt file in there. Or if you’re really bright you might even start hacking the code itself trying to find the fix yourself. Please don’t do this. Unless of course you are the code’s author in which case–please do.</p>
<p>Even once you narrow it down to Mod_Security you may be tempted to try an .htaccess override because the web is full of examples of how to override Mod_Security per site, per file just simply by adding lines like these to your .htaccess file.</p>
<p><code>SecFilterScanPOST Off</code></p>
<p><code>SecFilterEngine Off</code></p>
<p><code>&lt;IfModule mod_security.c&gt;SecFilterEngine off&lt;/IfModule&gt;</code></p>
<p><code>&lt;IfModule mod_security.c&gt;SecFilterInheritance Off&lt;/IfModule&gt;</code></p>
<p>If you are one of the (un)fortunate ones who are unable to get things working by some variation of these tricks then you have essentially three choices:</p>
<ul>
<li>
<ol>1. If you are on a shared hosting account you will need to call or email your web host and ask that they add a white list rule that disables the rule that is giving the false positive. Ideally you would do this for the file in question and not just disable Mod_Security for your entire account which some people will try to tell you is the best solution. Personally, I’d run if that were the case.</ol>
<ol>2.  If you are the webhost and you’re administering your own dedicated server or a VPS you should have the option of opening a support ticket with the company you are leasing from and one of their admins will do this for you. LiquidWeb and their Heroic Support is fantastic for things like this.</ol>
<ol>3. If neither of the above apply and you’re on your own, or if you just have time to burn and want to learn something about the way your webserver works you can add a rule yourself</ol>
</li>
</ul>
<p><strong>Whitelisting WordPress with Mod_Security</strong></p>
<p>While previously I stated that the false positive was caused by a poorly formed rule in Mod_Security’s configuration files, it would be equally reasonable to assume the rule was crafted by design and that the best practice for solving your Mod_Security woes and getting on with it is to create another rule specifically telling Mod_Security that it’s okay to let these requests pass unmolested. This is a fairly conservative i.e. paranoid security model but it’s tried and true: Deny All, Accept Few. So how to do this? Fortunately if you are somewhat handy with the shell you should be able to patch your Mod_Security in no time. You will need root access to your server, so if you don’t have that then see Step 1, above.</p>
<p>In the example that follows I assume you have root or access to sudo, can SSH into your server and can use a vi or nano to edit files and that you are running cPanel 11 and WHM. Here’s what you need to do.</p>
<ol>
<li>1. Log in to your server either with the root account or with your regular user account. You can wrap your commands with sudo or escalate your privileges to root as necessary.</li>
<li>2. Change to the Mod_Security configuration directory: <code>cd /usr/local/apache/conf/modsec2</code></li>
<li>3. Open the whitelist.conf file for editing: <code>vi whitelist.conf</code></li>
<li>4. Add the following lines of code to whitelist.conf<code>&lt;LocationMatch "/wp-admin/post.php"&gt;SecRuleRemoveById 300015 300016 300017
<p></code><code>&lt;/LocationMatch&gt;</code></p>
<p><code>&lt;LocationMatch "/wp-admin/admin-ajax.php"&gt;</code></p>
<p><code>SecRuleRemoveById 300015 300016 300017</p>
<p></code><code>&lt;/LocationMatch&gt;</code></p>
<p><code>&lt;LocationMatch "/wp-admin/page.php"&gt;</code></p>
<p><code>SecRuleRemoveById 300015 300016 300017</p>
<p></code><code>&lt;/LocationMatch&gt;</code></li>
<p><code></code></p>
<p><code><code></p>
<li>5. Save whitelist.conf</li>
<li>6. Restart Apache</li>
<p></code></code></ol>
<p><code><code>If all goes well once Apache restarts your web server should stop sending 500 Internal Server Errors when you try to post your content and instead do what it’s supposed to do and accept your post.</code></code></p>
<p><code><code> </code></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonkingstudios.com/blog/apache-mod_security-whitelisting-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.jasonkingstudios.com @ 2012-02-06 17:19:14 -->
