<feed xmlns='http://www.w3.org/2005/Atom'>
<title>webao/webAO/dom/twofactor.ts, branch master</title>
<subtitle>WebAO fork</subtitle>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/'/>
<entry>
<title>Remove defunct CAPTCHA</title>
<updated>2026-04-18T16:52:23+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-04-07T03:16:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=ae7ef2c6c76947ea12cbb1592152d9c80fd1a8f3'/>
<id>ae7ef2c6c76947ea12cbb1592152d9c80fd1a8f3</id>
<content type='text'>
The hCaptcha integration has been abandoned for a while. It added yet
another questionable third-party API (which also set a Cloudflare
cookie), and its effectiveness is unclear considering its client-side
nature.

A custom CAPTCHA implementation (such as PoW challenge) is an
interesting prospect, but it'll require proper server-side support.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The hCaptcha integration has been abandoned for a while. It added yet
another questionable third-party API (which also set a Cloudflare
cookie), and its effectiveness is unclear considering its client-side
nature.

A custom CAPTCHA implementation (such as PoW challenge) is an
interesting prospect, but it'll require proper server-side support.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace cookies with localStorage</title>
<updated>2026-04-18T16:52:23+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-04-07T02:55:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=4bd750ca1f3e446f68e0f88fabf0682fd4d61848'/>
<id>4bd750ca1f3e446f68e0f88fabf0682fd4d61848</id>
<content type='text'>
Cookies's use case is to store persistent data and send it to the server
in subsequent requests, such as to remember logged-in sessions. WebAO is
using them to store site settings like ad-hoc hash tables that require
parsing and serialization.

As a nasty side-effect of how cookies work, clients send all their
settings every time they connect to the server. Server has absolutely no
use for them, but each client sends them anyway, which is an
uncalled-for privacy leak.

Remove this mechanism entirely, switch to localStorage which serves
exactly the purpose of per-origin store with data that never leaves the
browser.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cookies's use case is to store persistent data and send it to the server
in subsequent requests, such as to remember logged-in sessions. WebAO is
using them to store site settings like ad-hoc hash tables that require
parsing and serialization.

As a nasty side-effect of how cookies work, clients send all their
settings every time they connect to the server. Server has absolutely no
use for them, but each client sends them anyway, which is an
uncalled-for privacy leak.

Remove this mechanism entirely, switch to localStorage which serves
exactly the purpose of per-origin store with data that never leaves the
browser.
</pre>
</div>
</content>
</entry>
<entry>
<title>Prettified Code!</title>
<updated>2024-11-20T13:31:50+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>stonedDiscord@users.noreply.github.com</email>
</author>
<published>2024-11-20T13:31:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=6684f3fce6e90fd0574d7bab63b629554ab03ef6'/>
<id>6684f3fce6e90fd0574d7bab63b629554ab03ef6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>throw out google</title>
<updated>2023-12-08T13:56:19+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2023-12-08T13:56:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=eff96c0dab7dd864fa6a60cbffc105d08d8b8ead'/>
<id>eff96c0dab7dd864fa6a60cbffc105d08d8b8ead</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>autoformat with eslint</title>
<updated>2023-09-20T11:10:36+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2023-09-20T11:10:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=dda92bd41f4bee11e2cc5de265ce4fbf5221f1ff'/>
<id>dda92bd41f4bee11e2cc5de265ce4fbf5221f1ff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bring back iniedit dropdown</title>
<updated>2022-11-13T19:13:14+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2022-11-13T19:13:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=79a2d2ea9f89550cbeaa738dfd7803e75be1a0cd'/>
<id>79a2d2ea9f89550cbeaa738dfd7803e75be1a0cd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>whoops forgot args are a list</title>
<updated>2022-10-22T17:37:28+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2022-10-22T17:37:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=cc568bbc87d890a43e14728d9328b537afe090b7'/>
<id>cc568bbc87d890a43e14728d9328b537afe090b7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>this is much nicer</title>
<updated>2022-10-22T16:44:18+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2022-10-22T16:44:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=fb399fd938b9205c761237917af7d7f3bc52ffff'/>
<id>fb399fd938b9205c761237917af7d7f3bc52ffff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>show the dialog</title>
<updated>2022-10-22T16:03:35+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2022-10-22T16:03:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=4b015ddc346835fc97f40ca425666af45d7ec632'/>
<id>4b015ddc346835fc97f40ca425666af45d7ec632</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add to window class</title>
<updated>2022-10-22T15:55:00+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2022-10-22T15:55:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=3445fe86cd359080e6c21b18cb43f08bb5e5881a'/>
<id>3445fe86cd359080e6c21b18cb43f08bb5e5881a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
