<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: whitelisting</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/whitelisting.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2008-11-08T23:11:31+00:00</updated><author><name>Simon Willison</name></author><entry><title>Clearing up inaccuracies about the Google OpenID IDP launch</title><link href="https://simonwillison.net/2008/Nov/8/clearing/#atom-tag" rel="alternate"/><published>2008-11-08T23:11:31+00:00</published><updated>2008-11-08T23:11:31+00:00</updated><id>https://simonwillison.net/2008/Nov/8/clearing/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blog.unto.net/miscellaneous/clearing-up-inaccuracies-about-the-google-openid-idp-launch/"&gt;Clearing up inaccuracies about the Google OpenID IDP launch&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Google took some undeserved flack when they launched their OpenID provider. For the record, whitelisting providers fits my definition of the “Open” in OpenID perfectly (providers and consumers are free to impose whatever policies they like).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/whitelisting"&gt;whitelisting&lt;/a&gt;&lt;/p&gt;



</summary><category term="google"/><category term="openid"/><category term="whitelisting"/></entry><entry><title>Javascript protocol fuzz results</title><link href="https://simonwillison.net/2008/Jun/30/fuzz/#atom-tag" rel="alternate"/><published>2008-06-30T15:57:36+00:00</published><updated>2008-06-30T15:57:36+00:00</updated><id>https://simonwillison.net/2008/Jun/30/fuzz/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.thespanner.co.uk/2008/06/30/javascript-protocol-fuzz-results/"&gt;Javascript protocol fuzz results&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
If your HTML sanitizer uses blacklisting rather than whitelisting here are a few more weird ways of injecting javascript: in to a link that you need to worry about—but you should really switch to whitelisting http:// and https:// instead.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/blacklisting"&gt;blacklisting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fuzztesting"&gt;fuzztesting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sanitization"&gt;sanitization&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/whitelisting"&gt;whitelisting&lt;/a&gt;&lt;/p&gt;



</summary><category term="blacklisting"/><category term="firefox"/><category term="fuzztesting"/><category term="html"/><category term="javascript"/><category term="sanitization"/><category term="security"/><category term="whitelisting"/></entry><entry><title>OpenID and Spam</title><link href="https://simonwillison.net/2008/Apr/2/matt/#atom-tag" rel="alternate"/><published>2008-04-02T19:33:25+00:00</published><updated>2008-04-02T19:33:25+00:00</updated><id>https://simonwillison.net/2008/Apr/2/matt/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ma.tt/2008/04/openid-and-spam/"&gt;OpenID and Spam&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Matt Mullenweg: “OpenID has a ton of promise for the web—let’s not hurt it by setting people up for disappointment by telling them it’s a spam blocker when it’s not.” True for the case of general registration, but I still believe whitelisting known OpenIDs could be a powerful tool for fighting spam on personal sites.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/matt-mullenweg"&gt;matt-mullenweg&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/social-whitelisting"&gt;social-whitelisting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/spam"&gt;spam&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/whitelisting"&gt;whitelisting&lt;/a&gt;&lt;/p&gt;



</summary><category term="matt-mullenweg"/><category term="openid"/><category term="social-whitelisting"/><category term="spam"/><category term="whitelisting"/></entry><entry><title>Crowd 1.1.0 Release Notes</title><link href="https://simonwillison.net/2007/Jun/21/crowd/#atom-tag" rel="alternate"/><published>2007-06-21T08:29:44+00:00</published><updated>2007-06-21T08:29:44+00:00</updated><id>https://simonwillison.net/2007/Jun/21/crowd/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://confluence.atlassian.com/display/CROWD/Crowd 1.1.0 Release Notes"&gt;Crowd 1.1.0 Release Notes&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Atlassian software are now offering a commercial OpenID provider, with the ability to hook in to an existing LDAP directory and some smart whitelist / blacklist options.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/atlassian"&gt;atlassian&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/blacklisting"&gt;blacklisting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crowd"&gt;crowd&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ldap"&gt;ldap&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/whitelisting"&gt;whitelisting&lt;/a&gt;&lt;/p&gt;



</summary><category term="atlassian"/><category term="blacklisting"/><category term="crowd"/><category term="ldap"/><category term="openid"/><category term="whitelisting"/></entry><entry><title>Six cool things you can build with OpenID</title><link href="https://simonwillison.net/2007/Feb/25/six/#atom-tag" rel="alternate"/><published>2007-02-25T15:48:13+00:00</published><updated>2007-02-25T15:48:13+00:00</updated><id>https://simonwillison.net/2007/Feb/25/six/#atom-tag</id><summary type="html">
    &lt;p&gt;I've &lt;a href="http://simonwillison.net/2007/talks/future-openid/" title="The Future of OpenID"&gt;posted the slides&lt;/a&gt; from my Future of Web Apps talk on OpenID, minus the demo videos. I'm planning to put together a video that combines the slides, demos and audio once the official podcasts have been published.&lt;/p&gt;

&lt;p&gt;Apart from explaining what OpenID is and how it works, the key point I was trying to get across in the talk was that OpenID is a simple piece of infrastructure on which smart applications can be built - applications that may not have been possible prior to the adoption of OpenID. This is due to two important characteristics of OpenID. The first is that OpenID significantly lowers the effort needed in creating an account, to the point that people might sign up for accounts with services that they otherwise would not have used. The second is that OpenID provides a globally unique identifier that can be used to correlate information across multiple services.&lt;/p&gt;

&lt;h4&gt;Light-weight accounts&lt;/h4&gt;

&lt;p&gt;Vanilla OpenID gives almost no useful information about a user and provides no defence against spammers; for many applications it makes sense to couple OpenID logins to a one-time account creation process, requesting additional details and using e-mail verification and CAPTCHAs to deter automated scripts.&lt;/p&gt;

&lt;p&gt;There are plenty of services for which this is not an issue. One neat use-case for OpenID is as a simple tool for extending the lifetime of session cookies, or sharing those sessions between different machines. If your site offers simple customisation features that are only of interest to the user (and hence have no value to spammers) you can use OpenID to persist their preferences. All you need is a way for a user to prove that they're still the same person they were yesterday.&lt;/p&gt;

&lt;h4&gt;Pre-approved accounts&lt;/h4&gt;

&lt;p&gt;OpenID lets you create accounts for people without e-mailing them a password, or even talking to them before you sign them up. There are lots of useful things you can do with this ability:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Let your trusted friends delete spam comments from your blog, or fix your typos.&lt;/li&gt;
  &lt;li&gt;Invite a selected group of people to contribute to your new collaborative weblog, without having to create new accounts for it or deal with yet another  password.&lt;/li&gt;
  &lt;li&gt;Invite friends to view a private document or photo gallery, pre-approving their public OpenIDs as able to authenticate with your site.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Restricted SSO&lt;/h4&gt;

&lt;p&gt;Once more of the popular open-source applications start supporting OpenID, I can see it really taking off as a simple SSO standard behind the corporate firewall. Create an OpenID for everyone in your organisation of the form username.internal.example.org, then configure your internal applications (MediaWiki, phpBB, WordPress etc) to only accept OpenIDs that match that format.&lt;/p&gt;

&lt;h4&gt;Site-specific hacks&lt;/h4&gt;

&lt;p&gt;Lots of sites are setting themselves up as OpenID providers, leading to many users having multiple OpenIDs; I have OpenIDs from Vox, LiveJournal and AOL, all of which were created as a side-effect of me using those services.&lt;/p&gt;

&lt;p&gt;I don't see this as being a problem. As a user, I can pick which is my "primary" OpenID (and use delegation so I can switch providers if I change my mind). Those other OpenIDs can still be useful though, because they let us build functionality that takes the providing site in to account. Here are a few examples:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;"Log in with your LiveJournal OpenID and we'll import your LJ contacts using your FOAF file" (&lt;a href="http://doxory.com/"&gt;doxory.com&lt;/a&gt; does something along these lines).&lt;/li&gt;
  &lt;li&gt;"Log in with your AOL OpenID and we'll send you status updates over AIM."&lt;/li&gt;
  &lt;li&gt;"Log in with your Last.fm OpenID and we'll add events from bands you like to your calendar."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sites that offer APIs should start thinking about how they can use OpenID as a simple vector for pushing data out to third party applications.&lt;/p&gt;

&lt;h4&gt;Social whitelists&lt;/h4&gt;

&lt;p&gt;I've &lt;a href="http://simonwillison.net/2007/Jan/22/whitelisting/"&gt;talked about these previously&lt;/a&gt;; Tom Coates has &lt;a href="http://www.plasticbag.org/archives/2007/01/social_whitelisting_w/" title="Social Whitelisting with OpenID"&gt;further thoughts&lt;/a&gt;. By sharing whitelists we can use OpenID to build a simple trust network.&lt;/p&gt;

&lt;p&gt;A similar concept is that of publishing groups. &lt;a href="http://www.jyte.com/"&gt;Jyte&lt;/a&gt; offers a &lt;a href="http://jyte.com/site/api"&gt;simple API&lt;/a&gt; to export the members of a Jyte group. Not only does this make groups portable to other services, it also lets you build an authentication mechanism for a site that only allows members of a specific published group to log in to a service.&lt;/p&gt;

&lt;h4&gt;Decentralised social networks&lt;/h4&gt;

&lt;p&gt;The problem with social networks is that you end up with profiles scattered across multiple different sites, and friend relationships that are duplicated in multiple places. The globally unique identifier offered by OpenID offers the basis for a decentralised social network, with profiles tied together across multiple sites and relationships easily portable between services.&lt;/p&gt;

&lt;p&gt;Hopefully the above ideas explain why I am personally excited about OpenID, and why I'm dedicating so much time to encouraging its adoption. The more people there are that understand and use OpenID, the more interesting applications we can build with it.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/future-of-web-apps"&gt;future-of-web-apps&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/speaking"&gt;speaking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/my-talks"&gt;my-talks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/whitelisting"&gt;whitelisting&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="future-of-web-apps"/><category term="openid"/><category term="speaking"/><category term="my-talks"/><category term="whitelisting"/></entry><entry><title>Group Membership Protocol</title><link href="https://simonwillison.net/2007/Jan/22/group/#atom-tag" rel="alternate"/><published>2007-01-22T08:27:21+00:00</published><updated>2007-01-22T08:27:21+00:00</updated><id>https://simonwillison.net/2007/Jan/22/group/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://openid.net/wiki/index.php/Group_Membership_Protocol"&gt;Group Membership Protocol&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Martin Atkins’ proposal for a simple “is OpenID X a member of group Y?” protocol, useful for whitelists that can scale to handle large numbers of entries.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/martin-atkins"&gt;martin-atkins&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/whitelisting"&gt;whitelisting&lt;/a&gt;&lt;/p&gt;



</summary><category term="martin-atkins"/><category term="openid"/><category term="whitelisting"/></entry><entry><title>Social whitelisting with OpenID</title><link href="https://simonwillison.net/2007/Jan/22/whitelisting/#atom-tag" rel="alternate"/><published>2007-01-22T03:01:02+00:00</published><updated>2007-01-22T03:01:02+00:00</updated><id>https://simonwillison.net/2007/Jan/22/whitelisting/#atom-tag</id><summary type="html">
    &lt;p id="p-0"&gt;A key feature of OpenID is that it provides a globally unique identifier for every user, no matter what site or service they are using on the Web.&lt;/p&gt;

&lt;p id="p-1"&gt;This gives us a powerful tool to fight comment spam. If someone has logged in with an OpenID &lt;em&gt;and&lt;/em&gt; we are confident that they are not a spammer (remember, spammers can create OpenIDs too) we can add them to a whitelist, allowing their comments to skip any moderation step or spam guard that we might have in place.&lt;/p&gt;

&lt;p id="p-2"&gt;This weblog has a comment spam detection system  based on simple heuristics. Comments are assigned a score; if the score exceeds a certain level the comment is placed in a queue for moderation. As of today, one of the heuristics is "does the comment author have an OpenID that is on the whitelist". I've populated my whitelist with the OpenIDs of people who have posted two or more useful comments  and do not appear to be using an &lt;a href="http://www.jkg.in/openid/"&gt;anonymous provider&lt;/a&gt;. I'll be adding to it regularly in the future.&lt;/p&gt;

&lt;p id="p-3"&gt;Here comes the social part: I'm &lt;a href="http://simonwillison.net/comments/whitelist/"&gt;sharing my whitelist&lt;/a&gt;. If you run your own OpenID-enabled weblog you are welcome to include my whitelist in your comment spam heuristics. If you publish your own whitelist, I will happily do the same.&lt;/p&gt;

&lt;p id="p-4"&gt;Social whitelisting benefits from being de-centralised, just like OpenID. If I find that you have whitelisted a spammer, I can unsubscribe from your whitelist. There's no central authority or point of failure.&lt;/p&gt;

&lt;p id="p-5"&gt;Long-time readers may be feeling a strong sense of deja-vu. Way back in September 2003, &lt;a href="http://simonwillison.net/2003/Sep/2/blacklisting/"&gt;I proposed shared comment blacklists&lt;/a&gt; as a solution to weblog comment spam. The idea was simple: every time you delete a spam comment, you add the link it was advertising to a public blacklist. Other blogs could then subscribe to your blacklist and block any new comments advertising the same site.&lt;/p&gt;

&lt;p id="p-6"&gt;The blacklisting idea was flawed from the very start. It was a classic example of Marcus J. Ranum's &lt;a href="http://www.ranum.com/security/computer_security/editorials/dumb/" title="The Six Dumbest Ideas in Computer Security"&gt;number one dumbest idea in computer security&lt;/a&gt;: Default Permit. Spam blacklists assume that if we don't know a link is bad, it's good. Spammers can create new bad links far faster than we can blacklist them.&lt;/p&gt;

&lt;p id="p-7"&gt;Here's Ranum's suggested alternative:&lt;/p&gt;

&lt;blockquote cite="http://www.ranum.com/security/computer_security/editorials/dumb/"&gt;&lt;p id="p-8"&gt;The opposite of "Default Permit" is "Default Deny" and it is a really good idea. It takes dedication, thought, and understanding to implement a "Default Deny" policy, which is why it is so seldom done. It's not that much harder to do than "Default Permit" but you'll sleep much better at night.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p id="p-9"&gt;Social whitelisting uses Default Deny. As such, I believe it has a much higher chance of making a useful impact on the comment spam problem.&lt;/p&gt;

&lt;p id="p-10"&gt;&lt;strong&gt;Update:&lt;/strong&gt; I should have mentioned that this idea developed over a number of discussions with &lt;a href="http://www.plasticbag.org/"&gt;Tom Coates&lt;/a&gt;, which totally slipped my mind when I was writing it up at 3am.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/commentspam"&gt;commentspam&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/moderation"&gt;moderation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openid"&gt;openid&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tom-coates"&gt;tom-coates&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/whitelisting"&gt;whitelisting&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="commentspam"/><category term="moderation"/><category term="openid"/><category term="tom-coates"/><category term="whitelisting"/></entry></feed>