<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>安全编码 on 办公AI智能小助手</title>
    <link>https://blog.qife122.com/tags/%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81/</link>
    <description>Recent content in 安全编码 on 办公AI智能小助手</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <copyright>qife</copyright>
    <lastBuildDate>Thu, 04 Dec 2025 11:58:30 +0800</lastBuildDate>
    <atom:link href="https://blog.qife122.com/tags/%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>深度剖析：Basecamp Campfire 机器人身份验证缺陷导致的用户身份伪造漏洞</title>
      <link>https://blog.qife122.com/p/%E6%B7%B1%E5%BA%A6%E5%89%96%E6%9E%90basecamp-campfire-%E6%9C%BA%E5%99%A8%E4%BA%BA%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E7%BC%BA%E9%99%B7%E5%AF%BC%E8%87%B4%E7%9A%84%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E4%BC%AA%E9%80%A0%E6%BC%8F%E6%B4%9E/</link>
      <pubDate>Thu, 04 Dec 2025 11:58:30 +0800</pubDate>
      <guid>https://blog.qife122.com/p/%E6%B7%B1%E5%BA%A6%E5%89%96%E6%9E%90basecamp-campfire-%E6%9C%BA%E5%99%A8%E4%BA%BA%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E7%BC%BA%E9%99%B7%E5%AF%BC%E8%87%B4%E7%9A%84%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E4%BC%AA%E9%80%A0%E6%BC%8F%E6%B4%9E/</guid>
      <description>&lt;h1 id=&#34;improper-bot-authentication-allows-to-impersonate-any-user-when-sending-messages-in-a-room&#34;&gt;Improper bot-authentication allows to impersonate any user when sending messages in a room&lt;/h1&gt;&#xA;&lt;p&gt;Bots 被允许在聊天室中发送消息，但需要一个 &lt;code&gt;bot key&lt;/code&gt; 进行身份验证。&lt;/p&gt;&#xA;&lt;p&gt;机器人密钥身份验证功能如下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;authenticate_bot&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bot_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;bot_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bot_token&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bot_key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;split&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;active&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;find_by&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bot_id&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;bot_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bot_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;end&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;问题在于，如果 &lt;code&gt;bot_key&lt;/code&gt; 没有右侧部分（例如：&lt;code&gt;1-&lt;/code&gt;），那么 &lt;code&gt;bot_token&lt;/code&gt; 将为 &lt;code&gt;nil&lt;/code&gt;，而查询将会匹配一个 &lt;code&gt;User&lt;/code&gt; 记录，前提是 &lt;code&gt;bot_id&lt;/code&gt; 匹配一个有效的用户ID。&lt;/p&gt;</description>
    </item>
    <item>
      <title>JavaScript安全编码十大实用技巧</title>
      <link>https://blog.qife122.com/p/javascript%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%8D%81%E5%A4%A7%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/</link>
      <pubDate>Mon, 24 Nov 2025 18:26:32 +0800</pubDate>
      <guid>https://blog.qife122.com/p/javascript%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%8D%81%E5%A4%A7%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/</guid>
      <description>&lt;h1 id=&#34;javascript安全编码&#34;&gt;JavaScript安全编码&lt;/h1&gt;&#xA;&lt;p&gt;JavaScript是整个互联网的前端。无论你是将TypeScript转译为JavaScript，创建快速的node.js脚本，还是构建调用更有趣API集合的漂亮但简单的前端，它几乎无处不在。由于JavaScript如此普及，它成为攻击者的主要目标。在本文中，我们将介绍编写更安全JavaScript的十个技巧。&lt;/p&gt;</description>
    </item>
    <item>
      <title>JavaScript安全编码十大最佳实践</title>
      <link>https://blog.qife122.com/p/javascript%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%8D%81%E5%A4%A7%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</link>
      <pubDate>Thu, 20 Nov 2025 06:34:53 +0800</pubDate>
      <guid>https://blog.qife122.com/p/javascript%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%8D%81%E5%A4%A7%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</guid>
      <description>&lt;h1 id=&#34;javascript安全编码十大最佳实践&#34;&gt;JavaScript安全编码十大最佳实践&lt;/h1&gt;&#xA;&lt;p&gt;JavaScript是整个互联网的前端。因为JavaScript如此普及，它成为攻击者的主要目标。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-跨站脚本&#34;&gt;1. 跨站脚本&lt;/h2&gt;&#xA;&lt;p&gt;谈到JavaScript安全性时，首要讨论的总是跨站脚本（XSS）。跨站脚本是一种注入形式；它意味着攻击者已混淆您的应用程序，使其解释或执行其恶意代码，而不是将其视为数据。用户输入应始终被视为数据，但不幸的是，如果我们不小心，计算机可能会被欺骗。&lt;/p&gt;</description>
    </item>
    <item>
      <title>JavaScript安全编码十大最佳实践</title>
      <link>https://blog.qife122.com/p/javascript%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%8D%81%E5%A4%A7%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</link>
      <pubDate>Mon, 10 Nov 2025 16:02:45 +0800</pubDate>
      <guid>https://blog.qife122.com/p/javascript%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%8D%81%E5%A4%A7%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/</guid>
      <description>&lt;h1 id=&#34;javascript安全编码&#34;&gt;JavaScript安全编码&lt;/h1&gt;&#xA;&lt;p&gt;JavaScript是整个互联网的前端。无论您是将TypeScript转译为JavaScript，创建快速的node.js脚本，还是构建调用更有趣API集合的漂亮但简单的前端，它几乎无处不在。由于JavaScript如此普及，它成为攻击者的主要目标。在本文中，我们将介绍编写更安全JavaScript的十个技巧。&lt;/p&gt;</description>
    </item>
    <item>
      <title>JavaScript安全编码十大实用技巧</title>
      <link>https://blog.qife122.com/p/javascript%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%8D%81%E5%A4%A7%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/</link>
      <pubDate>Sun, 26 Oct 2025 04:20:21 +0800</pubDate>
      <guid>https://blog.qife122.com/p/javascript%E5%AE%89%E5%85%A8%E7%BC%96%E7%A0%81%E5%8D%81%E5%A4%A7%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/</guid>
      <description>&lt;h1 id=&#34;javascript安全编码&#34;&gt;JavaScript安全编码&lt;/h1&gt;&#xA;&lt;p&gt;JavaScript是整个互联网的前端。无论你是将TypeScript转译为JavaScript，创建快速的node.js脚本，还是构建调用更有趣API集合的漂亮但简单的前端，它几乎无处不在。由于JavaScript如此普及，它成为攻击者的主要目标。在本文中，我们将介绍编写更安全JavaScript的十个技巧。&lt;/p&gt;</description>
    </item>
    <item>
      <title>基于随机混洗的语义安全通信技术</title>
      <link>https://blog.qife122.com/p/%E5%9F%BA%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%B7%B7%E6%B4%97%E7%9A%84%E8%AF%AD%E4%B9%89%E5%AE%89%E5%85%A8%E9%80%9A%E4%BF%A1%E6%8A%80%E6%9C%AF/</link>
      <pubDate>Sun, 07 Sep 2025 16:51:45 +0800</pubDate>
      <guid>https://blog.qife122.com/p/%E5%9F%BA%E4%BA%8E%E9%9A%8F%E6%9C%BA%E6%B7%B7%E6%B4%97%E7%9A%84%E8%AF%AD%E4%B9%89%E5%AE%89%E5%85%A8%E9%80%9A%E4%BF%A1%E6%8A%80%E6%9C%AF/</guid>
      <description>&lt;h1 id=&#34;基于随机混洗的语义安全通信技术&#34;&gt;基于随机混洗的语义安全通信技术&lt;/h1&gt;&#xA;&lt;p&gt;深度学习极大地受益于语义通信的最新进展。本文旨在从一个新颖的混洗角度审视这一尖端技术的安全性。我们的目标是改进传统的安全编码方案，在传输速率和泄漏速率之间达成理想的权衡。具体而言，对于窃听信道，我们寻求在给定泄漏率约束下最大化传输速率同时最小化语义错误概率。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
