<?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>FILI&#039;S TECH THOUGHTS</title>
	<atom:link href="http://blog.fili.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fili.nl</link>
	<description>-- All wiyht.  Rho sritched mg kegtops awound?</description>
	<lastBuildDate>Fri, 12 Feb 2010 11:04:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>6 reasons why the Linux desktop is safer</title>
		<link>http://blog.fili.nl/articles/six-reasons-why-the-linux-desktop-is-safer/</link>
		<comments>http://blog.fili.nl/articles/six-reasons-why-the-linux-desktop-is-safer/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 14:33:47 +0000</pubDate>
		<dc:creator>fili</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[executable]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[patches]]></category>
		<category><![CDATA[priviledges]]></category>
		<category><![CDATA[repositories]]></category>
		<category><![CDATA[safer]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[spyware]]></category>
		<category><![CDATA[trojan]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.fili.nl/?p=269</guid>
		<description><![CDATA[In the world of Linux a virusscanner is only used by those running a mailserver. Not to protect the machine itself, but to intercept malware going from Windows to Windows machines. Personally I've never encoutered spyware either, so there is no reason to install spyware removal software. Even a firewall is rarely needed, simply because [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.fili.nl/wp-content/uploads/2010/02/tux-758174.png"><img class="size-full wp-image-287 alignright" style="border: 0pt none;" title="tux-758174" src="http://blog.fili.nl/wp-content/uploads/2010/02/tux-758174.png" alt="" width="150" height="180" /></a>In the world of Linux a virusscanner is only used by those running a mailserver. Not to protect the machine itself, but to intercept malware going from Windows to Windows machines. Personally I've never encoutered spyware either, so there is no reason to install spyware removal software. Even a firewall is rarely needed, simply because a Linux-box is usually airtight by default (there are other reasons to run a firewall though). Isn't is nice to have all that computer power back? So where is the difference? What makes the Linux desktop environment a safer choice? I have summed up six security reasons that makes me never want to switch back to Windows ever again;</p>
<p><strong>1. Smaller audience</strong><br />
Let's start off with an easy one. There are less people using Linux and the people that do tend to be more tech savy. Therefor it is less profitable to write malware for Linux, hence there are less attempts. It had to be said and it is probably true, however it is by far the sole reason. For example; Mac OS X (being a UNIX type operating system also) has gained enormously in popularity but not in malware. Coincidence? Read on!</p>
<p><strong>2. Software Repositories<br />
</strong>The process of installing software on a Linux box is somewhat different then most people are used to. For example; on Windows one would go to the software manufacturers website and download a binary to install. Instead most Linux distributions maintain socalled <a href="http://en.wikipedia.org/wiki/Software_repository">Software Repositories</a>. Almost all software (browsers, wordprocessors, ftp-clients, mail-clients, et cetera) can be installed by simply selecting it within a package manager. The applications in the repositories are specifically built and tested for your system, which ensures that they are legitimate and contain no malware. The repositories are filled with tons of software which you might need, only in rare occasions would you have to resort to other installation methods like a manual binary install or compiling from source. Getting your software from a secured and verified place, makes it less likely that you accidentally install malware on your computer.</p>
<p><strong>3. System-wide security patches</strong><br />
Another big advantage of Software Repositories is that it also allows for system-wide security updates. It is your Linux distribution that decides which version of a particular program you can install. This sounds like a disadvantage at first, but the benefits definitely outweigh the drawbacks. For example; if a patch is needed for a specific piece of software (from kernel to browser) you would almost instantly be given the possibility to update. This way you can easily keep your system up-to-date without having to constantly keep track of new software versions and flaws. In a sense you outsource the entire software security issue to your Linux distribution, making even inexperienced users as safe as can be.</p>
<p><strong>4. User privileges</strong><br />
By default you are an underpriviledged user on your own system. You can do make/edit documents and run most application on your system. But as soon as you want to reconfigure the system or install/update software you'd first have to prove (usually by means of entering a password) that you are authorized to do so. It's a very effective way of preventing a single software flaw in becoming a systemwide security breach.</p>
<p><strong>5. Execute permissions<br />
</strong>Generally speaking, files can be documents or applications. A document (picture, video, tekst) is something you can make by using an application. In Unix environments files are treated as documents by default. Meaning, you can't run them. Suppose you accidently download some piece of malware thinking it is the latest Britney Spears hitsingle. Even tripple clicking it won't make it run. In order to make the file behave like an application you'd first have to manually set execute permissions on it. And because nearly all malware is first activated by the user himself, this simple precaution makes it that much harder for malware coders to deploy their malicious software.</p>
<p><strong>6. Open Source<br />
</strong>The <a href="http://en.wikipedia.org/wiki/Security_through_obscurity">security through obscurity</a> principle is flawed, I think most security experts would agree. Proprietary software isn't inherently less exploitable then Open Source sofware simple because the code can't be looked into. I would even argue the exact opposite. When Open Source software get's popular, the source code is inspected and tested by a global community of developers. Granted some with bad intensions, but also those trying to learn from it and better it. As a result the software tends to consist of clean and well maintained code, which is thouroughly security scrutinized and debugged freely by third party's. Collaboration leads to better software!</p>
<p><strong>Is Linux infallible?</strong><br />
Nope, not even close. But conceptually better protected then some.</p>
<p><strong>Which distribution is right for me?</strong><br />
There is not one "Linux". Literally hundreds of different flavors exist, picking the right one is something you'd have to find out for yourself. If you're interested in trying out something easygoing, I'd personally recommend <a href="http://www.ubuntu.com/">Ubuntu</a> or <a href="http://www.linuxmint.com/">Linux Mint</a>.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 828px; width: 1px; height: 1px;">http://en.wikipedia.org/wiki/Software_repository</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.fili.nl/articles/six-reasons-why-the-linux-desktop-is-safer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audit your network using Nmap, Ndiff and cron</title>
		<link>http://blog.fili.nl/articles/audit-your-network-using-nmap-ndiff-and-cron/</link>
		<comments>http://blog.fili.nl/articles/audit-your-network-using-nmap-ndiff-and-cron/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 19:31:59 +0000</pubDate>
		<dc:creator>fili</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[audit]]></category>
		<category><![CDATA[auditing]]></category>
		<category><![CDATA[backdoors]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ndiff]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[rootkits]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[trojans]]></category>
		<category><![CDATA[virusses]]></category>
		<category><![CDATA[worms]]></category>

		<guid isPermaLink="false">http://blog.fili.nl/?p=185</guid>
		<description><![CDATA[To combat the ill effects of trojans, rootkits and worms (not to forget the new H1N1 virus) one "should" regularly scan their local network for changes, preferably on a daily basis. Then again, one "should" also preferably feed the dog, greet the neighbors and clean their teeth on a daily basis. Tell me, who has [...]]]></description>
			<content:encoded><![CDATA[<p>To combat the ill effects of trojans, rootkits and worms (not to forget the new H1N1 virus) one "should" regularly scan their local network for changes, preferably on a daily basis. Then again, one "should" also preferably feed the dog, greet the neighbors and clean their teeth on a daily basis. Tell me, who has time to do all that?</p>
<p>Network auditing is a tedious task and because it's not very stimulating work, you're likely more prone to error. I too, as your fellow computer enthusiast, like to automate just about anything (and as such my dog is never hungry, my teeth never dirty and my neighbor never under-greeted).<br />
So here's how I did it this time.</p>
<p><strong>1. Nmap 5 to the rescue!<br />
</strong>Nmap is a "<em>network exploration tool and security / port scanner"</em>, commonly used by sysadmins and unanimously considered  (by me) to be an indispensable tool. Nmap version 5 was recently  (july 16th, 2009) released - bringing some <a href="http://nmap.org/5/" target="_blank">exciting new features</a>. This article focuses on Ndiff, the scan comparison tool. It's the fruit of a Google Summer of Code project in 2008.</p>
<p>Your first task is to install Nmap 5. It happily runs on Windows, Linux, and Mac OS X, however this article is written with Linux in mind. Note: earlier releases won't do, on Debian Lenny I had to obtain version 5 through the <a href="http://backports.org/dokuwiki/doku.php" target="_blank">backports repository</a>.</p>
<p><strong>2. Next, install the script</strong><br />
Make a directory somewhere only accessible by root and put the following bash script in it:</p>
<pre class="brush: bash;">
#!/bin/bash
# Simple cron-based network auditing scanner
# Requires Nmap 5+
# Related article @ http://blog.fili.nl/articles/audit-your-network-using-nmap-ndiff-and-cron/

MAILOUT=your@email.com
NETWORK=10.0.0.0/24

CWD=`dirname $0`
NMAP=/usr/bin/nmap
NDIFF=/usr/bin/ndiff
MAIL=/usr/bin/mail

if [ -f &quot;$CWD/baseline.xml&quot; ]; then
    echo &quot;Scanning network $NETWORK...&quot;
    $NMAP -n -oX &quot;$CWD/current.xml&quot; $NETWORK &gt;/dev/null

    echo -n &quot;Comparing Nmap scans using Ndiff...&quot;
    $NDIFF $CWD/baseline.xml $CWD/current.xml &gt;$CWD/last-result

    if [ $(stat -c%s &quot;$CWD/last-result&quot;) -gt 70 ]; then
        echo &quot;Changed!&quot;; echo &quot;$MAILOUT has been notified.&quot;
        cat $CWD/last-result | mail -s &quot;Alert: Network $NETWORK changed&quot; $MAILOUT
        mv $CWD/current.xml $CWD/baseline.xml
    else
        echo &quot;Ok.&quot;
        rm -f $CWD/current.xml $CWD/last-result
    fi
else
    echo &quot;First scan, generating baseline...&quot;
    $NMAP -n -oX &quot;$CWD/baseline.xml&quot; $NETWORK &gt;/dev/null
fi
</pre>
<p>Download: <a href="http://fili.nl/naudit-cron/naudit-cron.sh" target="_blank">naudit-cron.sh</a></p>
<p>It's a quite straightforward script as you can see.<br />
Here's what it does:</p>
<ol>
<li>At the first run, it makes a baseline scan of your network to compare too.</li>
<li>At subsequent runs it makes a new scan and compares that to the baseline scan. When something differs in your network (like newly opened/closed ports or computers that have appeared/disappeared) it alerts an admin.</li>
<li>Finally it updates the baseline xml-file to reflect the change.</li>
</ol>
<p><strong>3. Configure the script<br />
</strong>There are few settings to adjust, but they are important. MAILOUT obviously declares where to send the notifications to. With NETWORK you can define what you want to scan, this could be an entire subnet (in <a href="http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing" target="_blank">CIDR notation</a>) or a single ip.</p>
<pre class="brush: bash;">
MAILOUT=your@email.com
NETWORK=10.0.0.0/24
</pre>
<p>Make the file executable and run it (a couple of times) to generate the baseline xml-file and to verify that everything works as expected.</p>
<p><strong>4. Finally, cron it<br />
</strong>The only step left is to automatically execute this script on a hourly/daily/weekly basis. This is kind of OS specific, on most Linux distribution you'd create a new file in /etc/cron.d/ containing:</p>
<pre class="brush: plain;">
# minute - hour - monthday - month - weekday - command
0 1 * * * root /root/naudit-cron/naudit-cron.sh &gt;/dev/null
</pre>
<p>Tweak the cron settings and you're done!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">As your fellow computer enthusiast,</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.fili.nl/articles/audit-your-network-using-nmap-ndiff-and-cron/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress plugin: Anti-Captcha</title>
		<link>http://blog.fili.nl/articles/wordpress-plugin-anti-captcha/</link>
		<comments>http://blog.fili.nl/articles/wordpress-plugin-anti-captcha/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 16:02:41 +0000</pubDate>
		<dc:creator>fili</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[anti-captcha]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.fili.nl/?p=133</guid>
		<description><![CDATA[What the heck is this 'Anti-Captcha' you speak of?
Anti-Captcha -as a concept- is a transparent Captcha solution which does not require any end-user interaction. This particular Anti-Captcha is based on the technique best described in this related article.
Anti-Captcha as a WordPress Plugin
The aim of this plugin is to prevent automated attacks (by bots) on the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What the heck is this 'Anti-Captcha' you speak of?</strong><br />
Anti-Captcha -as a concept- is a transparent Captcha solution which does not require any end-user interaction. This particular Anti-Captcha is based on the technique best described <a href="http://blog.fili.nl/articles/the-anti-captcha-challenge/" target="_self">in this related article</a>.</p>
<p><strong>Anti-Captcha as a WordPress Plugin<br />
</strong>The aim of this plugin is to prevent automated attacks (by bots) on the following WordPress actions:</p>
<ul>
<li>Posting comments</li>
<li>Logging in</li>
<li>Registering for a new account</li>
<li>Requesting a lost password</li>
</ul>
<p>When a comment is posted without a valid Anti-Captcha token, it shall be <em>instantly marked as spam</em>. This way, you can always manually approve this comment in hindsight if it appeared to be sincere.</p>
<p><strong>Download<br />
</strong>You can download this plugin directly from the WordPress plugin repository:<br />
<a href="http://wordpress.org/extend/plugins/anti-captcha/" target="_blank">http://wordpress.org/extend/plugins/anti-captcha/</a></p>
<p><strong>Requirements<br />
</strong>This plugin is written for Wordpress version 2.8.4 and has not been tested on lower versions then that. Because of the usage of the <a href="http://jquery.com/" target="_blank">jQuery javascript library</a> compatibility with all major internet browsers can be expected (including the dreaded IE6).</p>
<p>Note: the user does need to have javascript enabled for form submission to succeed.  Generally, it's frowned upon if you don't write javascript in an unobstructive way. The reason for this is that some visitors don't support javascript but should still be able to get around your website.</p>
<p>AFAIK there are four types of user-agents not supporting javascript:</p>
<ul>
<li>Search-engine spider bots</li>
<li>Users of a command-line browser (like Lynx)</li>
<li>Users who actively disabled javascript in their browser</li>
<li>Mischievous bots trying to spam or hack into your blog</li>
</ul>
<p>Obviously, search-engines don't need to comment, register or login so they can be ruled out. Lynx users and users with javascript disabled are likely to be a <em>very small</em> percentage of the internet population, who have actively excluded themselves from certain webfeatures. Finally, badly behaving bots, is what the Anti-Captcha plugin is trying to block.</p>
<p><strong>Changelog</strong></p>
<p>=&gt; 20090821</p>
<ul>
<li> First release</li>
</ul>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 235px; width: 1px; height: 1px;">To install simply:1. Upload the 'anti-captcha' folder to the /wp-content/plugins/ directory<br />
1. Activate the plugin through the 'Plugins' menu in WordPress</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.fili.nl/articles/wordpress-plugin-anti-captcha/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>The Anti-Captcha Challenge</title>
		<link>http://blog.fili.nl/articles/the-anti-captcha-challenge/</link>
		<comments>http://blog.fili.nl/articles/the-anti-captcha-challenge/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 15:50:40 +0000</pubDate>
		<dc:creator>fili</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[anti-captcha]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.fili.nl/?p=1</guid>
		<description><![CDATA[Recap: the problem with current Captcha solutions
The general purpose of Captcha's are to prevent the automation of form submission. For example, to protect a guestbook from filling up with spam-entries or to prevent hundreds of bogus users registering to a forum.
Until recently, image-based Captcha's have been a reasonable solution to combat this problem. However, with [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><strong>Recap: the problem with current Captcha solutions</strong><br />
The general purpose of Captcha's are to prevent the automation of form submission. For example, to protect a guestbook from filling up with spam-entries or to prevent hundreds of bogus users registering to a forum.</p>
<p style="text-align: left;">Until recently, image-based Captcha's have been a reasonable solution to combat this problem. However, with Object Character Recognition techniques getting better and better, Captcha's too have to continuously increase in complexity.</p>
<p>Just look at these gems and imagine yourself being color blind:</p>
<p style="text-align: left;"><img class="alignnone size-full wp-image-14" title="some-unreadable-captchas" src="http://blog.fili.nl/wp-content/uploads/2009/08/some-unreadable-captchas.png" alt="some-unreadable-captchas" width="392" height="213" /></p>
<p style="text-align: left;">Ironically, it's come to the point that computers are better at deciphering Captcha's than humans are, simply because computers have infinite patience.</p>
<p style="text-align: left;">To illustrate: evildoers trying to beat your Captcha are probably satisfied with a success ratio of 1/100 – because in just a few hours of repetition this can add up to hundreds of successful passes. A typical human user on the other hand probably throws in the towel after three consecutive failed attempts – at which point they'll most likely leave your website altogether.</p>
<p style="text-align: left;">Who can blame them? The average user doesn't understand <em>why </em>they should enter a random string of letters in the first place. It's not their problem and they do not care what it is for. For them it's some sort of annoying puzzle that stands in the way of doing what they want to do. Not being able to pass it, makes them feel inadequate and frustrated.</p>
<p style="text-align: left;">I argue, let's keep the end-user entirely out of it,<br />
I propose we  rid ourselves of Captcha's as we know it,<br />
I proclaim this the era of Anti-Captcha's... <em>Hallelujah!</em></p>
<p style="text-align: left;"><strong>The Anti-Captcha challenge</strong><br />
The basic idea behind it is simple;</p>
<p style="text-align: left;"><em><span style="color: #000000;">"Create a captcha solution which does not require any end-user interaction"</span></em></p>
<p style="text-align: left;">As a first attempt, I concocted a working Anti-Captcha based on the reasoning that only browsers can interpret javascript well. Making it a question of "Has a browser been involved at form submission?" instead of "Has a human been involved". In general the answer ends up to be equal (see "Caveats" section below).</p>
<p style="text-align: left;"><strong>How it works<br />
</strong>Check out the <a href="http://www.fili.nl/anti-captcha/" target="_blank">online demo here</a></p>
<p>In the head of the html document an external javascript-file is called, this file is in fact a php file which is designed to:</p>
<ol style="text-align: left;">
<li>Generate a random token</li>
<li>Store a checksum of this token in session</li>
<li>Generate some obfuscated javascript code which (when interpreted) adds a hidden input-field to every form element on the webpage using the token as a value</li>
</ol>
<p style="text-align: left;">After form-submission, the checksum of the post value should equal the checksum stored in session. As a bonus, this technique should also provide adequate protection against <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery" target="_blank">XSRF</a>.</p>
<p style="text-align: left;"><strong>Installation</strong><em><br />
</em></p>
<ol style="text-align: left;">
<li>Download <a href="http://www.fili.nl/anti-captcha/anti-captcha-0.1.zip" target="_blank">Anti-Captcha</a> and (if needed) the latest version of the <a href="http://jquery.com/" target="_blank">jQuery javascript library</a></li>
<li>Put both scripts in the head of your html document (in the proper order):
<pre class="brush: xml;">
&lt;head&gt;
&lt;script type=&quot;application/javascript&quot; src=&quot;jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;application/javascript&quot; src=&quot;anti-captcha-0.1.js.php&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
</pre>
</li>
<li>After form-submission match the input value with the sha1 checksum stored in session:
<pre class="brush: php;">
&lt;?php
// Start session
session_start();

// Verify the token using the checksum stored in session
if (sha1($_POST['anti-captcha-token']) == $_SESSION['anti-captcha-checksum']) {

// Immediately reset and continue form validation
unset($_SESSION['anti-captcha-checksum']);
die('Captcha accepted');

} else {

// No Anti-Captcha checksum received
die('Error, please enable javascript');

}
</pre>
</li>
</ol>
<p><em>Looking for the WordPress plugin? <a href="http://blog.fili.nl/articles/wordpress-plugin-anti-captcha/" target="_self">Click here</a></em><strong><br />
</strong></p>
<p style="text-align: left;"><strong>Requirements<br />
</strong>The Anti-Captcha script is written to be PHP4 compatible and should run on most hosting platforms. Because of the usage of the <a href="http://jquery.com/" target="_blank">jQuery javascript library</a> compatibility with all major internet browsers can be expected (including the dreaded IE6). Note: the user does need to have javascript enabled for form submission to succeed.</p>
<p style="text-align: left;"><strong>Caveats</strong><br />
Obviously this technique isn't perfect, at some point bots might gain the ability to interpret javascript or simply read-out the obfuscated code instead. At that time a different approach, with a similar concept, would be needed.</p>
<p style="text-align: left;">It should also be possible to fool the Anti-Captcha with the use of “automated mouse-clicking software”. However this should be very hard to combine with botnets - thus making additional security layers (for example: maximizing form-submission on a per-ip basis) more feasible.</p>
<p style="text-align: left;">Another major drawback is the need for javascript to allow form-submissions, which is something you should ponder over yourself. Personally I feel it outweighs the disadvantages image-based Captcha's bring in, but this probably depends on the project at hand.</p>
<p style="text-align: left;"><strong>Credits</strong><br />
Part of the obfuscation technique used is based upon <a href="http://dean.edwards.name/packer/" target="_blank">Dean Edwards JavaScript's Packer</a> which is ported to PHP by Nicolas Martin, and made compatible with PHP4 by Mark Fabrizio Jr.</p>
<p style="text-align: left;"><strong>License</strong><br />
The Anti-Captcha is licensed under <a href="http://creativecommons.org/licenses/LGPL/2.1/" target="_blank">LGPL 2.1</a></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; text-align: left;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;"><span style="font-size: x-large;"><strong>The problem with current Captcha solutions</strong></span></p>
<p style="margin-bottom: 0cm;">The general purpose of a Captcha is to prevent the automation of form submission. For example, to protect a guestbook from filling up with spam-entries or to prevent hundreds of bogus users registering to a forum.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Image based captcha's have been a reasonable solution to combat this problem. However, with Object Character Recognition techniques getting better and better, captcha's too have to continuously increase in complexity. Just look at these fine examples:</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.fili.nl/articles/the-anti-captcha-challenge/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>
