<?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>Tiffany B. Brown &#187; Security</title>
	<atom:link href="http://tiffanybbrown.com/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://tiffanybbrown.com</link>
	<description>A web log about web development and internet culture with frequent detours into other stuff.</description>
	<lastBuildDate>Wed, 23 May 2012 16:23:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Recommended: &#8220;Lockdown: The coming war on general-purpose computing&#8221;</title>
		<link>http://tiffanybbrown.com/2012/01/16/recommended-lockdown-the-coming-war-on-general-purpose-computing/</link>
		<comments>http://tiffanybbrown.com/2012/01/16/recommended-lockdown-the-coming-war-on-general-purpose-computing/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 18:19:11 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[Information management]]></category>
		<category><![CDATA[Internet life]]></category>
		<category><![CDATA[Pop culture]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[intellectual property]]></category>
		<category><![CDATA[internet freedom]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/?p=6602</guid>
		<description><![CDATA[A fantastic essay by Corey Doctorow over at Boing Boing all about the rise of DRM and the future of general purpose computing. The entire essay is grand, but I think this paragraph sums it up best. We don&#8217;t know how to build a general-purpose computer that is capable of running any program except for [...]]]></description>
			<content:encoded><![CDATA[<p>A fantastic essay by <a href="http://craphound.com/">Corey Doctorow</a> over at Boing Boing all about the rise of DRM and the future of general purpose computing. The entire essay is grand, but I think this paragraph sums it up best.</p>
<blockquote><p>We don&#8217;t know how to build a general-purpose computer that is capable of running any program except for some program that we don&#8217;t like, is prohibited by law, or which loses us money. The closest approximation that we have to this is a computer with spyware: a computer on which remote parties set policies without the computer user&#8217;s knowledge, or over the objection of the computer&#8217;s owner. Digital rights management always converges on malware.</p>
</blockquote>
<p>In an effort to stamp out piracy, we are stamping out legitimate fair-use rights, and accepting invasions of privacy <em>by corporations</em> in a way that also happens to dovetail nicely with the intelligence gathering goals of governments everywhere. </p>
<p>I don&#8217;t mean to sound too much like a conspiracy theory-loving whack job here. But the fact is that the same software that enables corporations to manage their intellectual property or make a profit on targeted advertising <em>also</em> makes it easier to spy on citizens. I&#8217;ll refer you to Evgeny Morozov&#8217;s enlightening, yet sobering book on this very subject, <a href="http://www.amazon.com/Net-Delusion-Dark-Internet-Freedom/dp/1586488740/webinista-20/ref=sr_1_1?ie=UTF8&#038;qid=1326737277&#038;sr=8-1">The Net Delusion: The Dark Side of Internet Freedom</a> (of which I have read about half thus far). </p>
<p>[h/t: <a href="http://benramsey.com/">Ben Ramsey</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2012/01/16/recommended-lockdown-the-coming-war-on-general-purpose-computing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Airline Security</title>
		<link>http://tiffanybbrown.com/2011/12/22/on-airline-security/</link>
		<comments>http://tiffanybbrown.com/2011/12/22/on-airline-security/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 23:01:31 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/?p=6565</guid>
		<description><![CDATA[Remember the fake boarding pass that was in Schneier&#8217;s hand? Actually, it was mine. I had flown to meet Schneier at Reagan National Airport because I wanted to view the security there through his eyes. He landed on a Delta flight in the next terminal over. To reach him, I would have to pass through [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Remember the fake boarding pass that was in Schneier&#8217;s hand? Actually, it was mine. I had flown to meet Schneier at Reagan National Airport because I wanted to view the security there through his eyes. He landed on a Delta flight in the next terminal over. To reach him, I would have to pass through security. The day before, I had downloaded an image of a boarding pass from the Delta Web site, copied and pasted the letters with Photoshop, and printed the results with a laser printer. I am not a photo-doctoring expert, so the work took me nearly an hour. The T.S.A. agent waved me through without a word. A few minutes later, Schneier deplaned, compact and lithe, in a purple shirt and with a floppy cap drooping over a graying ponytail.</p></blockquote>
<p>That&#8217;s from <i class="magazine title">Vanity Fair</i>&#8216;s wonderful article <a href="http://www.vanityfair.com/culture/features/2011/12/tsa-insanity-201112">Smoke Screening</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2011/12/22/on-airline-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 for AS3 Developers: cross-domain.xml and Cross-Origin Resource Sharing</title>
		<link>http://tiffanybbrown.com/2011/10/10/html5-for-as3-developers-cross-domain-xml-and-cross-origin-resource-sharing/</link>
		<comments>http://tiffanybbrown.com/2011/10/10/html5-for-as3-developers-cross-domain-xml-and-cross-origin-resource-sharing/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 10:00:47 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[ActionScript, Flash & Flex]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Server management]]></category>
		<category><![CDATA[cors]]></category>
		<category><![CDATA[html5foras3devs]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/?p=6226</guid>
		<description><![CDATA[This is the second post in an occasional series designed to bridge the gap between ActionScript 3.0 and emerging front-end technologies. Flash, like JavaScript, more-or-less adheres to a same-origin policy by default. Under a same-origin policy, requests for data must come from the same scheme, hostname, and port. If http://foo.example tries to request data from [...]]]></description>
			<content:encoded><![CDATA[<p class="editors-note">This is the <a href="http://tiffanybbrown.com/tag/html5foras3devs">second post</a> in an occasional series designed to bridge the gap between ActionScript 3.0 and emerging front-end technologies.</p>
<p>Flash, like JavaScript, more-or-less adheres to a <a href="http://www.w3.org/Security/wiki/Same_Origin_Policy">same-origin</a> policy by default. Under a same-origin policy, requests for data must come from the same scheme, hostname, and port. If <code>http://foo.example</code> tries to request data from <code>http://bar.example</code>, the request will usually fail.</p>
<p>Same-origin policies are designed to prevent the unauthorized leakage of data to a third-party server. Without it, a script or SWF hosted on <code>http://mightbeevil.foo</code> could read data hosted on <code>http://goodsite.foo</code> and send it to <code>http://muhahahaevilsite.foo</code>. This kind of cross-domain activity could be used to exploit cookie and authentication data. It&#8217;s clearly a bad thing.</p>
<p>Recent browsers have safeguarded against these kinds of cross-site scripting exploits by <a href="https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript">preventing</a> JavaScript from making cross-origin requests. <code>XMLHttpRequest</code>, for example, will throw a security exception if you attempt a cross-origin request.</p>
<p>Flash, meanwhile has long supported a means for enabling cross-origin requests: the <a href="https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html">policy file</a>. The policy file is a way of white-listing requests for data or credentials from specific origins. It lives on the server from which you are requesting data, and gives the Flash player a &#8220;yay&#8221; or &#8220;nay&#8221; when asked whether the request from a specific origin should be allowed to complete.</p>
<p>Cross-origin restrictions, though necessary, are also quite limiting.  You can&#8217;t (or <em>couldn&#8217;t</em>), for example, request data for a mash-up using <code>XMLHttpRequest</code>. Though there are workarounds &#8212; using dynamic script insertion, or using the <a href="https://developer.mozilla.org/en/DOM/document.domain"><code>document.domain</code></a> &#8212; those workarounds also leave the DOM vulnerable to cross-site scripting. </p>
<p>To to mitigate the dangers of cross-site scripting while still enabling it, the W3C is developing the <a href="http://www.w3.org/TR/cors/">Cross-Origin Resource Sharing</a> (CORS) specification. It functions similarly to Flash&#8217;s cross-domain policy file, but uses HTTP headers instead of an XML configuration file. </p>
<p>CORS request headers are automatically generated by conforming browsers when a script attempts a cross-domain request. Response headers must be set in the server&#8217;s configuration file, or dynamically per URL using a server-side language.</p>
<p>Let&#8217;s compare a sample cross-domain.xml file to how we&#8217;d achieve the same thing using CORS.</p>
<h2>Cross-origin requests from Flash</h2>
<p>To use the domains from our example above, if <code>http://mightbeevil.foo</code> made a request to data hosted on <code>http://goodsite.foo</code>, <code>http://goodsite.foo</code> would need to permit the request by including mightbeevil.foo it in its policy file. For example:</p>
<pre>
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!DOCTYPE cross-domain-policy SYSTEM &quot;http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd&quot;&gt;
&lt;cross-domain-policy&gt;
    &lt;allow-access-from domain=&quot;mightbeevil.foo&quot;/&gt;
&lt;/cross-domain-policy&gt;</pre>
<p>This file must be stored in the web root of <code>http://goodsite.foo</code>. It explicitly permits mightbeevil.foo &#8212; and permits only mightbeevil.foo &#8212; to make requests for its data (from within a Flash movie). </p>
<h2>Cross-origin requests from the DOM</h2>
<p>To reuse our example from above, let&#8217;s use <a href="http://www.w3.org/TR/XMLHttpRequest2/"><code>XMLHttpRequest</code></a> to make a request from <code>http://mightbeevil.foo</code> to <code>http://goodsite.foo</code>.</p>
<pre>
var xhr, onLoadHandler 

onLoadHandler = function(event){
     alert('It is done!');
}

xhr = new XMLHttpRequest();
xhr.open('GET','http://goodsite.foo/data.json');
xhr.onload = onLoadHandler;
xhr.send(null);
</pre>
<p>It looks just like a regular XHR request, except for the fact that we&#8217;re requesting data from another origin. Let&#8217;s take a look at our headers.</p>
<pre>Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding:gzip, deflate
Accept-Language:en-us,en;q=0.5
Connection:keep-alive
Host:goodsite.foo
Origin:http://mightbeevil.foo
Referer:http://mightbeevil.foo/make_cross_domain_request/
User-Agent: Awesome/9.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0) FantasticEngine/8889876 Awesome Browser/9.0</pre>
<p>Notice that our headers include <code>Origin:http://mightbeevil.foo</code>. </p>
<p>Goodsite.foo responds with the following headers.</p>
<pre>Access-Control-Allow-Origin:http://mightbeevil.foo
Connection:Keep-Alive
Content-Length:1349
Content-Type:application/json
Date:Mon, 26 Sep 2011 04:44:50 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.2.20</pre>
<p>Here we see that an <code>Access-Control-Allow-Origin</code> response header is returned by the server. Like <code>allow-access-from</code>, it indicates which domain(s) are allowed to make requests. Here, we want to know whether <code>mightbeevil.foo</code> is allowed to request data. It is, so the request will be completed. </p>
<p>Acceptable values for <code>Access-Control-Allow-Origin</code> include an origin (scheme + host + port), a comma-separated list of origins&dagger;, or a wildcard (*). As with cross-domain.xml, if the value of <code>Access-Control-Allow-Origin</code> had instead been <code>http://notevil.foo</code>, the request would have failed. Using a wildcard allows requests from <em>any</em> domain.</p>
<p>Of course, both specifications are more complex than what I have covered here. These examples illustrate how to enable a basic cross-origin request. It is also possible with both CORS and Flash to permit or exclude custom headers. And in the case of CORS, it is possible to use methods such as <code>PUT</code> or <code>DELETE</code> if the user agent supports it.</p>
<table class="browsersupport">
<caption>Browser support for Cross-Origin Resource Sharing as of 10 January 2012</caption>
<tr>
<th>Opera</th>
<th>Opera Mini</th>
<th>Opera Mobile</th>
<th>IE</th>
<th>Firefox</th>
<th>Chrome</th>
<th>Safari</th>
<th>iOS Safari</th>
<th>Android WebKit</th>
</tr>
<tr>
<td class="yes center">11.60+</td>
<td class="no center mobile">no</td>
<td class="no center mobile">no</td>
<td class="yes center">8.0+</td>
<td class="yes center">4.0+</td>
<td class="yes center">5.0+</td>
<td class="yes center">4.0+</td>
<td class="yes center mobile">3.2+</td>
<td class="yes center mobile">2.1+</td>
</tr>
</table>
<h2>Learn more</h2>
<ul>
<li><a href="https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html">Flash cross-domain policy file specification</a></li>
<li><a href="http://www.w3.org/TR/cors/">Cross-origin Resource Sharing</a></li>
<li><a href="http://www.w3.org/TR/XMLHttpRequest2/">XMLHttpRequest Level 2</a></li>
</ul>
<p class="footnote">&dagger; Most browsers do not yet support multiple origin values. The specification is also a working draft, and subject to change.</p>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2011/10/10/html5-for-as3-developers-cross-domain-xml-and-cross-origin-resource-sharing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recommended: &#8220;Wrapping Things Nicely with HTML5 Local Storage&#8221;</title>
		<link>http://tiffanybbrown.com/2010/12/07/recommended-wrapping-things-nicely-with-html5-local-storage/</link>
		<comments>http://tiffanybbrown.com/2010/12/07/recommended-wrapping-things-nicely-with-html5-local-storage/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 17:19:12 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[(x)HTML]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[local storage]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[super cookies]]></category>
		<category><![CDATA[web storage]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/?p=5153</guid>
		<description><![CDATA[Today&#8217;s 24Ways entry is from Christian Heilmann and takes a look at HTML5 Local Storage. Heilmann explains: Why client-side storage can be a good thing; The origins of and need for local storage; How to use local storage; When to use local storage; I implemented local storage in browsers that support it for our wedding [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s 24Ways entry is from <a href="http://wait-till-i.com/">Christian Heilmann</a> and takes a look at <a href="http://dev.w3.org/html5/webstorage/">HTML5 Local Storage</a>. </p>
<p>Heilmann explains: </p>
<ul>
<li>Why client-side storage can be a good thing;</li>
<li>The origins of and need for local storage;</li>
<li>How to use local storage;</li>
<li>When to use local storage;</li>
</ul>
<p>I implemented local storage in browsers that support it for our <a href="http://jtandtb.com/">wedding web site</a>. It saves the open or closed state of each content chunk. It was easy enough to save the data. And it gives the user a bit of added convenience.</p>
<p><a href="http://24ways.org/2010/html5-local-storage">Read the piece</a>.</p>
<p><strong>Keep in mind:</strong> local storage can be &#8212; and will be, and right now is probably being &#8212; used to create hard-to-delete &#8220;super cookies&#8221; for advertising, marketing, and other privacy-eroding things.</p>
<p>The good news is the web storage specification and all browsers that support it restrict local storage data to the originating domain. The bad news is that most browsers don&#8217;t offer an easy way to local storage objects. In Safari, for example, you&#8217;ll need to fire up Terminal (quit Safari first) and navigate to /Users/tbrown/Library/Safari/LocalStorage to delete items individually or collectively.</p>
<p>This isn&#8217;t a new issue. <a href="http://www.adobe.com/products/flashplayer/articles/lso/">Flash &#8216;cookies&#8217;</a> have existed for years (<a href="http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager07.html">view, manage or delete yours</a>). But what <em>is</em> new is that some (most?) browser makers have made it hard to manage and control what gets stored and for how long. </p>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2010/12/07/recommended-wrapping-things-nicely-with-html5-local-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Damn &#8230; my VPS is being cracked</title>
		<link>http://tiffanybbrown.com/2007/11/07/damn-my-vps-is-being-cracked/</link>
		<comments>http://tiffanybbrown.com/2007/11/07/damn-my-vps-is-being-cracked/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 19:35:06 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[cracking]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[web servers]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/2007/11/07/damn-my-vps-is-being-cracked/</guid>
		<description><![CDATA[UPDATE: What appears to have happened &#8230; Yeah, as I type this, I&#8217;m getting hit with an attack. I&#8217;m not precisely sure of the motive. I just know that there are two directories on my server that should not be there and the attack appears to be coming through a specific URL. It&#8217;s been happening [...]]]></description>
			<content:encoded><![CDATA[<p class="editors-note"><b>UPDATE:</b> <a href="http://tiffanybbrown.com/2007/11/09/wp-super-cache-v01-vulnerable-to-injection-vps-crack-update/">What appears to have happened &#8230;</a></p>
<p>Yeah, as I type this, I&#8217;m getting hit with an attack. I&#8217;m not precisely sure of the motive. I just know that there are two directories on my server that <em>should not be there</em> and the attack appears to be coming through a specific URL. It&#8217;s been happening for several days now<del datetime="2007-11-07T22:35:00+00:00">It just started today</del>, according to my server logs, and the attacker is <a href="http://78.90.51.85/html/safeon.txt">using</a> / <a href="http://78.90.51.85/html/test.txt">attempting to use</a> PHP functions that interact with the shell.</p>
<p>He was also able to grab a whole bunch of data about my server as you can see from the above-linked code. I have my suspicions about how it is getting through, but nothing I can prove just yet. I&#8217;m going to look into it and see what I can come up with. </p>
<p>In the meantime, I&#8217;m just going to ask nicely that he (assuming this is a guy) please, <em>please</em> stop, and don&#8217;t mess up any of my stuff while visiting.  </p>
<p>And please take steps to disable certain system-affecting functions in your php.ini file (if you have access). </p>
<p><strong>UPDATE:</strong> This crack appears to involve a <a href="http://www.ossec.net/wiki/index.php/ShellBOT">ShellBOT</a> as well.</p>
<p><strong>UPDATE 2:</strong> ShellBOTs are bad. Apparently they open a connection to an <a href="http://www.networksecurityarchive.org/html/Incidents/2004-10/msg00032.html">IRC server</a> allowing all kinds of nasty things to happen. So hoping nothing serious was compromised.</p>
<p><strong>UPDATE 3:</strong> Interesting to know: when working in the shell, your file name does <em>not</em> need to have the &#8216;proper&#8216; extension that it would on a web server in order to be executed. </p>
<p>Let&#8217;s say you have a plain text file named &#8216;hello.txt.&#8217; It contains one line: <code>&lt;?php echo 'hello world';?&gt;</code>. In order for this file to run as a web page, it would need to have a .php (or whatever is designated in your server configuration file). But as a shell script, it could have just about any name and still be executed by typing &#8216;php hello.txt&#8217; at the command line. </p>
<p>In this case, the attacker grabbed (or attempted to grab) a ShellBOT written in Perl from another server  (file name b.txt) and execute it by sending the &#8216;perl b.txt&#8217; after the wget command. </p>
<p><b>UPDATE 4:</b> I&#8217;m pretty sure my suspicions have been <a href="http://twitter.com/codepo8/statuses/396467782">confirmed</a>. It seems that at least <a href="http://twitter.com/factoryjoe/statuses/396472592">one other person</a> has had an issue with <a href="http://ocaoimh.ie/2007/11/05/wordpress-super-cache-01/">WP Super Cache</a> opening their server to attack. I suspected this early on, and deleted the plugin and its associated files. As an added measure, I disabled those functions that can execute system commands. So far, so good. I can&#8217;t say my server is now <em>secure</em>, but I&#8217;m hoping that hole has been filled. </p>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2007/11/07/damn-my-vps-is-being-cracked/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Link dump: Aug 6, 2006</title>
		<link>http://tiffanybbrown.com/2006/08/06/link-dump-aug-6-2006/</link>
		<comments>http://tiffanybbrown.com/2006/08/06/link-dump-aug-6-2006/#comments</comments>
		<pubDate>Sun, 06 Aug 2006 18:08:23 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[Internet life]]></category>
		<category><![CDATA[JavaScript/ECMAScript]]></category>
		<category><![CDATA[Link dumps]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/viewqb.php/723</guid>
		<description><![CDATA[Javascript Boot Camp Tutorial Groovy bits from Amy Hoy&#8217;s talk at OSCON 2006. [Via Spun] .NET developers make more money No mention of Java web developers. And even less mention of a methodology, so take it for what it&#8217;s worth. UPDATE: The author says: I began searching job sites for currently available jobs within the [...]]]></description>
			<content:encoded><![CDATA[<dl>
<dt><a href="http://www.slash7.com/articles/2006/07/26/javascript-boot-camp-tutorial">Javascript Boot Camp Tutorial</a></dt>
<dd>Groovy bits from Amy Hoy&#8217;s talk at <abbr title="Open Source Convention">OSCON 2006</abbr>. [Via <a href="http://ginatrapani.com/spun/">Spun</a>]</dd>
<dt><a href="http://www.bestcodingpractices.com/net_developers_make_more_money-2706.html">.NET developers make more money</a></dt>
<dd>No mention of Java web developers. And even less mention of a methodology, so take it for what it&#8217;s worth. <strong>UPDATE:</strong> The author says: <q cite="http://www.bestcodingpractices.com/net_developers_make_more_money-2706.html">I began searching job sites for currently available jobs within the US that said what the pay rate was per hour. I thought that jobs offered at a pay rate would be more reliable than asking people what they were being paid. &#8230; I went until I had 100 jobs for each technology and then did an average.</q></dd>
<dt><a href="http://auctionbytes.com/cab/abu/y206/m08/abu0172/s03">eBay Sellers Turn to Teen Hangout &#8216;MySpace,&#8217; Part 1</a></dt>
<dd>Pretty self-explanatory headline. Indeed all sorts of people and businesses are turning to MySpace to promote themselves. [Via <a href="http://www.micropersuasion.com/">Micropersuasion</a>]</dd>
<dt><a href="http://www.washingtonpost.com/wp-dyn/content/article/2006/08/05/AR2006080500930.html?nav=rss_email/components">Saudi Youth Use Cellphone Savvy To Outwit the Sentries of Romance</a></dt>
<dd>Bluetooth and SMS are making it easier for Saudi youth to connect discreetly.</dd>
<dt><a href="http://www.washingtonpost.com/wp-dyn/content/article/2006/08/05/AR2006080501149.html">Expert Issues Warning About E-Passports</a></dt>
<dd><q cite="http://www.washingtonpost.com/wp-dyn/content/article/2006/08/05/AR2006080501149.html">Electronic passports being introduced in the U.S. and other countries have a major vulnerability that could allow criminals to clone embedded secret code and enter countries illegally, an expert warned.</q> Wired.com has another story about <a href="http://wired.com/news/technology/0,71521-0.html?tw=wn_index_17">RFID and hacking e-passports</a></dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2006/08/06/link-dump-aug-6-2006/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Thursday three-fer</title>
		<link>http://tiffanybbrown.com/2006/04/20/thursday_threefer/</link>
		<comments>http://tiffanybbrown.com/2006/04/20/thursday_threefer/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Development & Programming]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/2006/04/20/thursday_threefer</guid>
		<description><![CDATA[F-Shaped Pattern For Reading Web Content This week&#8217;s Alertbox column, offers tips for web writing based on eyetracking studies of how users read web pages. Community Creators, Secure Your Code! Tips for sanitizing your user-generated content and code. Related: Ask Chris Episode 1 (MP3 file). Google Calendar releases an API So now you can create [...]]]></description>
			<content:encoded><![CDATA[<dl>
<dt><a href="http://www.useit.com/alertbox/reading_pattern.html">F-Shaped Pattern For Reading Web Content</a></dt>
<dd>This week&#8217;s Alertbox column, offers tips for web writing based on eyetracking studies of how users read web pages.</dd>
<dt><a href="http://alistapart.com/articles/secureyourcode">Community Creators, Secure Your Code!</a></dt>
<dd>Tips for sanitizing your user-generated content and code. Related: <a href="http://podcast.phparch.com/main/index.php/episodes:20050808">Ask Chris Episode 1</a> (MP3 file). </dd>
<dt><a href="http://code.google.com/apis/gdata/calendar.html">Google Calendar releases an API</a></dt>
<dd>So now you can create a calendar front-end and use Google Calendar as a back-end.</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2006/04/20/thursday_threefer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Links for April 7, 2006</title>
		<link>http://tiffanybbrown.com/2006/04/07/links_for_april_7_2006/</link>
		<comments>http://tiffanybbrown.com/2006/04/07/links_for_april_7_2006/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/2006/04/07/links_for_april_7_2006</guid>
		<description><![CDATA[TV on the Web ramping up in 2006 Richard MacManus has a round-up and analysis of some recent posts about rich media. Study sees interest in multitasking phones Or &#8216;Why mobile content is about to become even hotter&#8217;, although Nokia&#8217;s CEO argues voice is still the killer app. [Related: My notes from Demystifying the Mobile [...]]]></description>
			<content:encoded><![CDATA[<dl>
<dt><a href="http://www.readwriteweb.com/archives/tv_on_the_web_r.php">TV on the Web ramping up in 2006</a></dt>
<dd>Richard MacManus has a round-up and analysis of some recent posts about rich media.</dd>
<dt><a href="http://news.com.com/Study+sees+interest+in+multitasking+phones/2100-1039_3-6058780.html?tag=nefd.top">Study sees interest in multitasking phones</a></dt>
<dd>Or &#8216;Why mobile content is about to become even hotter&#8217;, although Nokia&#8217;s CEO argues <a href="http://news.com.com/Nokia+CEO+Cell+phone+market+still+about+voice/2100-1039_3-6058243.html?tag=st.rn">voice is still the killer app</a>. [Related: My notes from <a href="/viewqb.php/551">Demystifying the Mobile Web</a> and the Pew report, <a href="http://www.pewinternet.org/PPF/r/179/report_display.asp">How Americans use their cell phones</a>]</dd>
<dt><a href="http://businesslogs.com/design_and_usability/power_polarities_in_the_design_business.php">Power Polarities In The Design Business</a></dt>
<dd>Mike shows you how to spot potential client drama a mile away.</dd>
<dt><a href="http://tamperdata.mozdev.org/">Tamperdata</a></dt>
<dd>A Mozilla/Firefox extension that can help security test your web apps. Turn it off when doing things like online banking. There&#8217;s also <a href="http://addneditcookies.mozdev.org/">Add &#038; Edit Cookies</a>. [Related (and where I found out about these extensions): <a href="http://shiflett.org/archive/217">Easy Cookie Hacking</a>]</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2006/04/07/links_for_april_7_2006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Never, EVER, neverever in life &#8230;</title>
		<link>http://tiffanybbrown.com/2005/08/17/never_ever_neverever_in_life/</link>
		<comments>http://tiffanybbrown.com/2005/08/17/never_ever_neverever_in_life/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>tiffany</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Server management]]></category>

		<guid isPermaLink="false">http://tiffanybbrown.com/2005/08/17/never_ever_neverever_in_life</guid>
		<description><![CDATA[&#8230; should you include put a file with your database passwords in your web document root and give it an .inc extenstion. I ran across an example of this today and it&#8217;s just a really bad practice. These files are web-readable, and by saving it as an .inc file, you are exposing your data to [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; should you include put a file with your database passwords in your web document root and give it an .inc extenstion.</p>
<p>I ran across an example of this today and it&#8217;s just a really <span class="b">bad</span> practice. These files are web-readable, and by saving it as an .inc file, you are exposing your data to whoever stumbles across &#8216;db.inc&#8217; or &#8216;globals.inc&#8217;. </p>
<p>If you <em>must</em> save files in your document root, save them with a .php extension (.php files are better,  but at least one developer <a href="http://shiflett.org/archive/110">argues not by much</a>.)</p>
<p><ins datetime="2005-08-25T20:04"><br />
<span class="b">UPDATE:</span> <a href="http://www.benramsey.com">Ben Ramsey</a> fills me in on the reasoning behind Chris Shiflett&#8217;s mandate.</p>
<p>There is a twofold reason Chris says that storing PHP includes within the Web root is not a good practice (there may be more than two reasons, but there are two that I know of):</p>
<blockquote>
<ol>
<li>your PHP scripts should never be accessed out of context, and leaving an include file within the Web root allows users to execute it out of context, potentially doing things you didn&#8217;t intend them to do, and</li>
<li>on the off-chance that the server crashes and reboots &#8212; but Apache doesn&#8217;t quite load PHP successfully &#8212; and it takes 30 minutes to an hour or more to get your hosting company to fix it, then all of your PHP files will be readable to the public as plain text, exposing your code and any passwords contained therein.</li>
</ol>
<p>Both reasons are enough to convince me to place only those files that need to be accessed directly by the client in the Web root and all others above it.
</p></blockquote>
<p>Sound advice.<br />
</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://tiffanybbrown.com/2005/08/17/never_ever_neverever_in_life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

