<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Security on dplabs — Software Engineering &amp; Technology Consultancy</title>
		<link>https://dplabs.tech/categories/security/</link>
		<description>Recent content in Security on dplabs — Software Engineering &amp; Technology Consultancy</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Mon, 29 Jun 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://dplabs.tech/categories/security/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Secure by Default: APIs That Are Hard to Misuse</title>
				<link>https://dplabs.tech/blog/secure-by-default-apis/</link>
				<pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/secure-by-default-apis/</guid>
				<description>&lt;p&gt;Security by default is a design principle, not a feature list. An API is secure by default when using it correctly produces secure behavior automatically, and producing insecure behavior requires deliberate effort.&lt;/p&gt;&#xA;&lt;p&gt;Most security failures are not the result of sophisticated attacks on well-designed systems. They&amp;rsquo;re the result of developers using APIs incorrectly, making incorrect assumptions about what defaults are safe, or forgetting to add security checks that should have been built in.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Security Risks of AI-Enabled Applications</title>
				<link>https://dplabs.tech/blog/security-risks-ai-applications/</link>
				<pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/security-risks-ai-applications/</guid>
				<description>&lt;p&gt;Integrating AI into applications introduces security risks that traditional application security doesn&amp;rsquo;t address. Most security frameworks were designed for deterministic systems. LLMs are not deterministic — their outputs depend on inputs in ways that are difficult to predict, test, or constrain.&lt;/p&gt;&#xA;&lt;p&gt;This doesn&amp;rsquo;t mean AI applications are inherently insecure. It means you need to think about security differently when LLMs are in the loop.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-core-problem-llms-process-text-as-instructions&#34;&gt;The Core Problem: LLMs Process Text as Instructions&lt;/h2&gt;&#xA;&lt;p&gt;In a conventional application, there&amp;rsquo;s a clear distinction between code and data. A SQL injection attack tries to blur that boundary — to get user input interpreted as SQL commands. You prevent it by parameterizing queries, by treating user input as data rather than code.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Security Is an Architecture Concern</title>
				<link>https://dplabs.tech/blog/security-is-architecture-concern/</link>
				<pubDate>Mon, 26 May 2025 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/security-is-architecture-concern/</guid>
				<description>&lt;p&gt;Security gets treated as a feature set: authentication, authorization, input validation, encryption. Implement those features and the system is secure. This framing is wrong and produces systems that are secure in obvious ways while vulnerable in non-obvious ones.&lt;/p&gt;&#xA;&lt;p&gt;Security is an emergent property of architectural decisions: where trust boundaries are placed, how data flows between components, what permissions components have, how failures are handled. These decisions are made during design, not during a security review at the end.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Authentication vs Authorization: Two Problems People Keep Conflating</title>
				<link>https://dplabs.tech/blog/authentication-vs-authorization/</link>
				<pubDate>Mon, 24 Mar 2025 00:00:00 +0000</pubDate>
				<guid>https://dplabs.tech/blog/authentication-vs-authorization/</guid>
				<description>&lt;p&gt;&amp;ldquo;Authentication&amp;rdquo; and &amp;ldquo;authorization&amp;rdquo; are often used interchangeably. They&amp;rsquo;re not the same problem, they&amp;rsquo;re not the same solution, and conflating them produces security architectures that fail in predictable ways.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-definitions-that-matter&#34;&gt;The Definitions That Matter&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Authentication&lt;/strong&gt;: verifying who someone is.&lt;/p&gt;&#xA;&lt;p&gt;A request is authenticated when the system has verified that the claimed identity (user, service) is legitimate. After authentication, you know &lt;em&gt;who&lt;/em&gt; is making the request.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Authorization&lt;/strong&gt;: determining what someone is allowed to do.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
