<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Encryption on Daffa Abhipraya</title><link>https://blog.abhipraya.dev/tags/encryption/</link><description>Recent content in Encryption on Daffa Abhipraya</description><generator>Hugo</generator><language>en-us</language><copyright>© Daffa Abhipraya</copyright><lastBuildDate>Fri, 13 Mar 2026 00:00:00 +0700</lastBuildDate><atom:link href="https://blog.abhipraya.dev/tags/encryption/index.xml" rel="self" type="application/rss+xml"/><item><title>PPL: Security [Sprint 1, Week 3]</title><link>https://blog.abhipraya.dev/ppl/part-b/s1w3-security/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0700</pubDate><guid>https://blog.abhipraya.dev/ppl/part-b/s1w3-security/</guid><description>&lt;h2 id="what-i-worked-on">
 &lt;a class="anchor" href="#what-i-worked-on" data-anchor="what-i-worked-on" aria-hidden="true">#&lt;/a>
 What I Worked On
&lt;/h2>
&lt;p>This week addressed four security areas: JWT algorithm validation hardening (reviewed MR !63), encryption key management in CI (MR !68), client PII encryption in the database seeder (reviewed MR !80), and ongoing SAST scanning via the CI pipeline.&lt;/p>
&lt;h2 id="jwt-algorithm-validation-preventing-algnone-attacks">
 &lt;a class="anchor" href="#jwt-algorithm-validation-preventing-algnone-attacks" data-anchor="jwt-algorithm-validation-preventing-algnone-attacks" aria-hidden="true">#&lt;/a>
 JWT Algorithm Validation: Preventing alg:none Attacks
&lt;/h2>
&lt;p>MR !63 (by adipppp, which I reviewed) hardened the JWT decoding logic against the &lt;strong>alg:none attack&lt;/strong>, one of the most well-known JWT vulnerabilities (OWASP A07:2021, Identification and Authentication Failures).&lt;/p></description></item><item><title>PPL: Building a Production-Safe Migration Pipeline with Automated Rollback</title><link>https://blog.abhipraya.dev/ppl/part-a/data-seeding/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0700</pubDate><guid>https://blog.abhipraya.dev/ppl/part-a/data-seeding/</guid><description>&lt;h2 id="why-database-migrations-need-safety-nets">
 &lt;a class="anchor" href="#why-database-migrations-need-safety-nets" data-anchor="why-database-migrations-need-safety-nets" aria-hidden="true">#&lt;/a>
 Why Database Migrations Need Safety Nets
&lt;/h2>
&lt;p>Imagine this scenario: a developer adds a new column to the invoices table, pushes to &lt;code>main&lt;/code>, and the CI/CD pipeline deploys it to production. Everything looks fine until the next morning, when the team discovers that the migration also dropped a constraint that was silently relied on by another service. Rolling back means manually writing SQL against the production database at 2 AM.&lt;/p></description></item></channel></rss>