<?xml version="1.0" encoding="utf-8"?>



<feed xmlns="http://www.w3.org/2005/Atom"
    xmlns:fh="http://purl.org/syndication/history/1.0"
    xmlns:at="http://purl.org/atompub/tombstones/1.0">

    <title>Publ: Development Blog</title>
    <subtitle>A personal publishing system for the modern web</subtitle>
    <link href="http://publ.beesbuzz.biz/blog/feed?tag=autoauth" rel="self" />
    <link href="http://publ.beesbuzz.biz/blog/feed" rel="current" />
    <link href="https://busybee.superfeedr.com" rel="hub" />
    
    
    <link href="http://publ.beesbuzz.biz/blog/" />
    <fh:archive />
    <id>tag:publ.beesbuzz.biz,2020-01-07:blog</id>
    <updated>2019-10-30T19:11:50-07:00</updated>

    
    <entry>
        <title>Publ 0.5.8, Authl 0.3.1, and IndieAuth security</title>
        <link href="http://publ.beesbuzz.biz/blog/491-Publ-0.5.8-Authl-0.3.1-and-IndieAuth-security" rel="alternate" type="text/html" />
        <published>2019-10-30T19:11:50-07:00</published>
        <updated>2019-10-30T19:11:50-07:00</updated>
        <id>urn:uuid:3019140c-3dc7-5b8f-98e5-ffa0c9fda3c4</id>
        <author><name>fluffy</name></author>
        <content type="html">
<![CDATA[
<p>So, both Publ and Authl had a pretty naïve issue with the identity verification step of the IndieAuth flow; it simply accepted whatever the authorization endpoint said the user&rsquo;s identity was. This made it very simple to spoof one&rsquo;s identity and log in as anyone on any Publ or Authl site.</p><p>Authl 0.3.1 fixes the problem with the IndieAuth login flow, and Publ 0.5.8 fixes the problem with the Bearer token flow.</p>

<p>If you don&rsquo;t understand what any of that means, the short form is: please update your package versions. You might also want to change your secret key while you&rsquo;re at it; even if you don&rsquo;t have any private content <em>yet</em>, someone could possibly have used this hole to log in as you in case you ever do post private content.</p><p>It&rsquo;s incredibly unlikely, of course! As far as I know I&rsquo;m the only active user of Publ (aside from my old day job where they are definitely not using the authentication stuff at all). But I felt that full disclosure is a good idea anyway.</p><p>Also, if you have your own IndieAuth implementation that you want to check for proper identity sanitization, the <a href="https://github.com/PlaidWeb/Authl">Authl GitHub repository</a> has an <a href="https://github.com/PlaidWeb/Authl/blob/master/test/rogue_indieauth.py">identity tester</a> that should be easy to deploy. It&rsquo;s worth testing against that to make sure that your identity verification is working correctly!</p><p>To use it, run it somewhere that&rsquo;s visible to your IndieAuth login flow; for example, if you&rsquo;re testing locally, you can do something like:</p><figure class="blockcode"><pre class="highlight" data-language="bash-session" data-line-numbers><span class="line" id="e491cb1L1"><a class="line-number" href="http://publ.beesbuzz.biz/blog/491-Publ-0.5.8-Authl-0.3.1-and-IndieAuth-security#e491cb1L1"></a><span class="line-content">$ FLASK_APP=Authl/test/rogue-indieauth.py flask run -p 6789</span></span>
</pre></figure><p>and then you can use <code>http://localhost:6789</code> as your identity; you can also add arbitrary path elements (e.g. <code>http://localhost:6789/alice</code>). Then when you try to log in as IndieAuth it&rsquo;ll prompt you for what you want your canonical identity to look like (for example, <code>http://example.com/</code> or <code>http://localhost:6789/bob</code>), and then see how your login flow deals with it.</p><p>At some point I&rsquo;ll probably spin up a public instance of this, as well.</p><p>There&rsquo;s also a deficiency in the IndieAuth spec regarding how to verify the path part of an identity URL; see <a href="https://github.com/indieweb/indieauth/issues/35">this open issue</a> if you want to see more and/or participate in the discussion.</p><p>Authl and Publ currently follow my proposal for the path validation, where for example <code>http://example.com/alice</code> can identify as <code>http://example.com/alice/</code> or <code>http://example.com/alice/blog/</code> but not as <code>http://example.com/bob</code> or <code>http://example.com/alice_is_bob</code>. This makes it technically stricter than the current public specification, but it&rsquo;s also a lot safer especially for multi-user websites such as <a href="https://tilde.club">tilde.club</a> or any random WordPress installation or whatever.</p><p>Anyway. This is just my long-winded way of saying, oops, I hecked up, but I fixed it, and maybe other people hecked up too and it&rsquo;s worth testing.</p><p><mark>EDIT:</mark> Oh I also forgot to mention that no, AutoAuth isn&rsquo;t actually supported yet. But I&rsquo;m working on it!</p>

]]>
        </content>
    </entry>
    
    <entry>
        <title>Publ v0.5.7, now with theoretical AutoAuth support!</title>
        <link href="http://publ.beesbuzz.biz/blog/269-Publ-v0.5.7-now-with-theoretical-AutoAuth-support" rel="alternate" type="text/html" />
        <published>2019-10-29T21:38:32-07:00</published>
        <updated>2019-10-29T21:38:32-07:00</updated>
        <id>urn:uuid:ea72944c-0743-57cf-a40d-4d3706567472</id>
        <author><name>fluffy</name></author>
        <content type="html">
<![CDATA[
<p>There is only one feature for this new release of Publ, but it&rsquo;s a big one &ndash; there is (theoretical) support for <a href="https://indieweb.org/AutoAuth">AutoAuth</a>! That&rsquo;s right, deploy this version and people should be able to magically log on to your website using unattended IndieAuth providers.</p><p>Unfortunately, there aren&rsquo;t any tools that I know of which actually support this mode of operation; all testing has been manual and In Theory.</p><p>Fortunately, if someone does want to test AutoAuth (or IndieAuth Bearer authentication in general), you can test it out on this site! You can use <a href="http://publ.beesbuzz.biz/blog/20191029 secret.md">this entry</a> as an individual entry, and <a href="http://publ.beesbuzz.biz/blog/?date=201910">this category</a> or <a href="http://publ.beesbuzz.biz/blog/feed?date=201910">this feed</a> to see how well it works with the &ldquo;partial public&rdquo; path.</p><p>Also, <a href="http://publ.beesbuzz.biz/userinfo">this page</a> will tell you all sorts of useful information about the current user (if any).</p><p>And I&rsquo;d might as well use this opportunity to show off the <a href="http://publ.beesbuzz.biz/_admin">admin dashboard</a> &ndash; just sign in as the user <code>test:admin</code> to see how it looks.</p><p><mark>EDIT:</mark> It looks like <a href="https://github.com/PlaidWeb/Authl/issues/43">there&rsquo;s a problem with third-party auth</a> due to the way that Heroku works. I should have anticipated this. Third-party auth is temporarily disabled for now. (But this doesn&rsquo;t affect <code>AutoAuth</code> at least!)</p>

]]>
        </content>
    </entry>
    

    
</feed>