<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>web on That Cyborg</title>
		<link>https://thatcyb.org/tags/web/</link>
		<description>Recent content in web on That Cyborg</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
			<managingEditor>blog@thatcyb.org (That Cyborg)</managingEditor>
		
		
			<webMaster>blog@thatcyb.org (That Cyborg)</webMaster>
		
		
			<copyright>© 2023-2026 That Cyborg</copyright>
		
		
			<lastBuildDate>Wed, 03 Dec 2025 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://thatcyb.org/tags/web/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>OAuth Proof Key for Code Exchange</title>
				<link>https://thatcyb.org/posts/oauth-proof-key-for-code-exchange/</link>
				<pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate><author>blog@thatcyb.org (That Cyborg)</author>
				<guid>https://thatcyb.org/posts/oauth-proof-key-for-code-exchange/</guid>
				<description>&lt;p&gt;PKCE (Proof Key for Code Exchange) is pronounced Pixie and it was introduced in &lt;a&#xA;    href=&#34;&#xA;        https://www.rfc-editor.org/info/rfc7636&#xA;    &#34;&gt;&#xA;    RFC 7636&#xA;&lt;/a&gt;&#xA; to make the Authorization Code flow more secure.&lt;/p&gt;&#xA;&lt;p&gt;This extension prevents CSRF and authorization code injection attacks.&lt;/p&gt;&#xA;&lt;p&gt;It was first made to protect the authorization code flow in mobile apps since mobile apps are inherently public clients (a user can reverse-engineer the application to find hard-coded secrets).&lt;/p&gt;&#xA;&lt;p&gt;Basically, if an attacker is able get an authorization client of a victim, it can talk to the token endpoint on the authorization server and get an access token for the user account.&#xA;For example, if the authorization code is returned to the mobile app via a URI scheme that talks to the app (&lt;a&#xA;    href=&#34;&#xA;        https://en.wikipedia.org/wiki/Mobile_deep_linking&#xA;    &#34;&gt;&#xA;    read here&#xA;&lt;/a&gt;&#xA;), and multiple apps can register as handlers for the same scheme - then the malicious app by the attacker can register as a handler and get the authorization code.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Learning About OAuth</title>
				<link>https://thatcyb.org/posts/learning-about-oauth/</link>
				<pubDate>Sat, 29 Nov 2025 00:00:00 +0000</pubDate><author>blog@thatcyb.org (That Cyborg)</author>
				<guid>https://thatcyb.org/posts/learning-about-oauth/</guid>
				<description>&lt;p&gt;I recently started learning more about OAuth, this note will document things I learn and find noteworthy.&lt;/p&gt;&#xA;&lt;h1 id=&#34;what-is-oauth&#34;&gt;What is OAuth?&lt;/h1&gt;&#xA;&lt;p&gt;OAuth is an abbreviation for &amp;ldquo;Open Authorization&amp;rdquo;.&#xA;OAuth is an authorization protocol that allows users to give certain permissions to third-party apps and services to access their account without giving them their credentials.&#xA;Even though there is some authentication protocol built on top of OAuth with OIDC (OpenID Connect), OAuth itself is simply an authorization protocol - which means the protocol doesn&amp;rsquo;t handle authentication of the user to the authorization server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Upgrading Your Tools</title>
				<link>https://thatcyb.org/posts/upgrading-your-tools/</link>
				<pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate><author>blog@thatcyb.org (That Cyborg)</author>
				<guid>https://thatcyb.org/posts/upgrading-your-tools/</guid>
				<description>&lt;p&gt;I really like learning about new tools that might do somethings differently, and sometimes they might even make your workflow easier.&lt;/p&gt;&#xA;&lt;p&gt;As an example, I used to always host my websites with either Nginx or Apache but recently I read about &lt;a&#xA;    href=&#34;&#xA;        https://caddyserver.com&#xA;    &#34;&gt;&#xA;    Caddy&#xA;&lt;/a&gt;&#xA; and the installation was super simple.&lt;/p&gt;&#xA;&lt;p&gt;It basically just works and gets the HTTPS certificates for me instead of using Let&amp;rsquo;s Encrypt manually with certbot.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Web Content Preserving</title>
				<link>https://thatcyb.org/posts/web-content-preserving/</link>
				<pubDate>Tue, 28 Nov 2023 00:00:00 +0000</pubDate><author>blog@thatcyb.org (That Cyborg)</author>
				<guid>https://thatcyb.org/posts/web-content-preserving/</guid>
				<description>&lt;p&gt;Today I read an &lt;a&#xA;    href=&#34;&#xA;        https://jeffhuang.com/designed_to_last/&#xA;    &#34;&gt;&#xA;    interesting article by Jeff Huang&#xA;&lt;/a&gt;&#xA; on making websites that are supposed to last for many years.&lt;/p&gt;&#xA;&lt;p&gt;This article lead me to think more about the content nowadays and what I like about the indie web.&lt;/p&gt;&#xA;&lt;p&gt;I like the idea of writing minimal websites that Just Work (TM) and will work for years to come without constant maintenance.&lt;/p&gt;&#xA;&lt;p&gt;Also, this lead me to a nice program called &lt;a&#xA;    href=&#34;&#xA;        https://archivebox.io/&#xA;    &#34;&gt;&#xA;    ArchiveBox&#xA;&lt;/a&gt;&#xA; that helps with archiving internet content and viewing it offline.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
