<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Origin on Nalar</title>
    <link>https://nalar.dev/tags/origin/</link>
    <description>Recent content in Origin on Nalar</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 16 Sep 2026 00:00:00 +0700</lastBuildDate>
    <atom:link href="https://nalar.dev/tags/origin/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>WebSocket Origin Checks Keep Browser Sessions Inside an Explicit Trust Boundary</title>
      <link>https://nalar.dev/websocket-origin-checks-keep-browser-sessions-inside-an-explicit-trust-boundary/</link>
      <pubDate>Wed, 16 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/websocket-origin-checks-keep-browser-sessions-inside-an-explicit-trust-boundary/</guid>
      <description>&lt;p&gt;A user can be signed in to a WebSocket-backed application while browsing an unrelated site in another tab. JavaScript on that unrelated site can attempt a WebSocket connection to the application&amp;rsquo;s endpoint. If the browser attaches credentials applicable to the handshake and the server upgrades the connection without checking the initiating origin, the new message channel can inherit authenticated authority that the page itself was never meant to receive.&lt;/p&gt;&#xA;&lt;p&gt;This boundary differs from ordinary cross-origin &lt;code&gt;fetch()&lt;/code&gt; handling. WebSocket establishes its own protocol channel through an HTTP opening handshake, and the server has to decide whether the browser origin named in that handshake is permitted to create the channel. CORS response policy is not a substitute for that decision.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
