<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Security</title><link>https://sourceforge.net/p/neiki-editor/wiki/Security/</link><description>Recent changes to Security</description><atom:link href="https://sourceforge.net/p/neiki-editor/wiki/Security/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 09 Jun 2026 08:17:14 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/neiki-editor/wiki/Security/feed" rel="self" type="application/rss+xml"/><item><title>Security modified by neikiri</title><link>https://sourceforge.net/p/neiki-editor/wiki/Security/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">neikiri</dc:creator><pubDate>Tue, 09 Jun 2026 08:17:14 -0000</pubDate><guid>https://sourceforge.netdb0dcfff05b8e35c7175c0f06da7001d2c979339</guid></item><item><title>Security modified by neikiri</title><link>https://sourceforge.net/p/neiki-editor/wiki/Security/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -141,12 +141,12 @@

 | | |
 |---|---|
-| [🔗 Integration Guide](Integration-Guide) | PHP sanitization helper usage |
-| [🧩 Advanced Features](Advanced-Features) | Autosave configuration |
-| [📋 Changelog](Changelog) | Security fix history |
+| [🔗 Integration Guide](/p/neiki-editor/wiki/Integration%20Guide) | PHP sanitization helper usage |
+| [🧩 Advanced Features](/p/neiki-editor/wiki/Advanced%20Features) | Autosave configuration |
+| [📋 Changelog](/p/neiki-editor/wiki/Changelog) | Security fix history |

 ---

 &lt;div align="center"&gt;

-  &lt;sub&gt;&lt;a href="./Home"&gt;← Back to Home&lt;/a&gt;&lt;/sub&gt;
+  &lt;sub&gt;&lt;a href="/p/neiki-editor/wiki/Home"&gt;← Back to Home&lt;/a&gt;&lt;/sub&gt;
 &lt;/div&gt;
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">neikiri</dc:creator><pubDate>Tue, 09 Jun 2026 08:17:13 -0000</pubDate><guid>https://sourceforge.neted5f17f18f5f0a8899393fb7a05dc0edf96cc3d0</guid></item><item><title>Security modified by neikiri</title><link>https://sourceforge.net/p/neiki-editor/wiki/Security/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -116,7 +116,7 @@

 | Version | Fix |
 |---|---|
-| **3.0.2** | Fixed polynomial regex risk in HTML code view — replaced with deterministic linear scan |
+| **3.0.3** | Fixed polynomial regex risk in HTML code view — replaced with deterministic linear scan |
 | **2.10.1** | Fixed XSS vulnerability in sanitizer's entity decoding — replaced `innerHTML`-based decoding with safe regex approach |
 | **2.9.3** | Hardened autosave HTML sanitization; fixed unsafe modal value interpolation for link/image dialogs; guarded against prototype pollution (`__proto__`, `constructor`) |
 | **2.9.4** | Reworked autosave storage key normalization to avoid polynomial regex on uncontrolled input; updated HTML sanitization parsing to avoid `DOMParser.parseFromString` |
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">neikiri</dc:creator><pubDate>Tue, 09 Jun 2026 06:07:54 -0000</pubDate><guid>https://sourceforge.netfed48a8a9e920fab44060d3dbaf390244d131235</guid></item><item><title>Security modified by neikiri</title><link>https://sourceforge.net/p/neiki-editor/wiki/Security/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -116,7 +116,7 @@

 | Version | Fix |
 |---|---|
-| **3.0.1** | Fixed polynomial regex risk in HTML code view — replaced with deterministic linear scan |
+| **3.0.2** | Fixed polynomial regex risk in HTML code view — replaced with deterministic linear scan |
 | **2.10.1** | Fixed XSS vulnerability in sanitizer's entity decoding — replaced `innerHTML`-based decoding with safe regex approach |
 | **2.9.3** | Hardened autosave HTML sanitization; fixed unsafe modal value interpolation for link/image dialogs; guarded against prototype pollution (`__proto__`, `constructor`) |
 | **2.9.4** | Reworked autosave storage key normalization to avoid polynomial regex on uncontrolled input; updated HTML sanitization parsing to avoid `DOMParser.parseFromString` |
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">neikiri</dc:creator><pubDate>Tue, 09 Jun 2026 06:07:54 -0000</pubDate><guid>https://sourceforge.netf161c3ca414651019b26f52b7651c106b0061932</guid></item><item><title>Security modified by neikiri</title><link>https://sourceforge.net/p/neiki-editor/wiki/Security/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-security"&gt;🔒 Security&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;Sanitization, XSS protection, and security best practices for Neiki's Editor.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr/&gt;
&lt;h2 id="h-why-sanitization-matters"&gt;⚠️ Why Sanitization Matters&lt;/h2&gt;
&lt;p&gt;Neiki's Editor is a rich text editor — users can paste content from any source, including web pages, documents, and potentially malicious sites. Without proper sanitization:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;XSS (Cross-Site Scripting)&lt;/strong&gt; — injected &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags can steal cookies, hijack sessions, or deface pages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Event handler injection&lt;/strong&gt; — &lt;code&gt;onclick="maliciousCode()"&lt;/code&gt; on any element&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protocol injection&lt;/strong&gt; — &lt;code&gt;href="javascript:..."&lt;/code&gt; in links&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Always sanitize HTML on the server before saving to a database or rendering to other users.&lt;/strong&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-built-in-client-side-sanitization"&gt;🛡️ Built-in Client-Side Sanitization&lt;/h2&gt;
&lt;p&gt;Neiki's Editor sanitizes all HTML that enters the editor — from autosave restoration, textarea content, &lt;code&gt;setContent()&lt;/code&gt;, and &lt;code&gt;insertHTML()&lt;/code&gt;. The built-in sanitizer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Strips dangerous tags: &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;object&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;embed&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt;, etc.&lt;/li&gt;
&lt;li&gt;Removes event handler attributes: &lt;code&gt;onclick&lt;/code&gt;, &lt;code&gt;onerror&lt;/code&gt;, &lt;code&gt;onload&lt;/code&gt;, &lt;code&gt;onmouseover&lt;/code&gt;, etc.&lt;/li&gt;
&lt;li&gt;Removes &lt;code&gt;javascript:&lt;/code&gt; and &lt;code&gt;data:&lt;/code&gt; protocol URLs in &lt;code&gt;href&lt;/code&gt; and &lt;code&gt;src&lt;/code&gt; attributes&lt;/li&gt;
&lt;li&gt;Uses a safe entity-decoding approach (regex-based, not &lt;code&gt;innerHTML&lt;/code&gt;-based) to prevent entity-encoding bypass attacks&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;[!IMPORTANT]&lt;/span&gt;&lt;br/&gt;
Client-side sanitization is a &lt;strong&gt;defense-in-depth&lt;/strong&gt; measure. It &lt;strong&gt;does not replace&lt;/strong&gt; server-side sanitization. Always validate and sanitize on the server.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr/&gt;
&lt;h2 id="h-server-side-sanitization-php-helper"&gt;🐘 Server-Side Sanitization — PHP Helper&lt;/h2&gt;
&lt;p&gt;The included PHP helper provides a &lt;code&gt;sanitize()&lt;/code&gt; method:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class=""&gt;require_once 'path/to/php/neiki-editor.php';&lt;/span&gt;

&lt;span class=""&gt;// Sanitize before saving to database&lt;/span&gt;
&lt;span class=""&gt;$cleanHTML = NeikiEditor::sanitize($_POST['content']);&lt;/span&gt;

&lt;span class=""&gt;$stmt = $pdo-&amp;gt;prepare('UPDATE articles SET body = ? WHERE id = ?');&lt;/span&gt;
&lt;span class=""&gt;$stmt-&amp;gt;execute([$cleanHTML, $articleId]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The PHP sanitizer strips:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dangerous tags (&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;object&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;embed&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Event handler attributes (&lt;code&gt;onclick&lt;/code&gt;, &lt;code&gt;onerror&lt;/code&gt;, &lt;code&gt;onload&lt;/code&gt;, &lt;code&gt;onfocus&lt;/code&gt;, &lt;code&gt;onblur&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;javascript:&lt;/code&gt; and &lt;code&gt;data:text/html&lt;/code&gt; protocol URLs&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-safe-tags-allowlist"&gt;✅ Safe Tags Allowlist&lt;/h2&gt;
&lt;p&gt;The built-in sanitizer allows these HTML elements (content generated by the editor):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Tags&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Structure&lt;/td&gt;
&lt;td&gt;&lt;code&gt;p&lt;/code&gt;, &lt;code&gt;div&lt;/code&gt;, &lt;code&gt;span&lt;/code&gt;, &lt;code&gt;br&lt;/code&gt;, &lt;code&gt;hr&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Headings&lt;/td&gt;
&lt;td&gt;&lt;code&gt;h1&lt;/code&gt;, &lt;code&gt;h2&lt;/code&gt;, &lt;code&gt;h3&lt;/code&gt;, &lt;code&gt;h4&lt;/code&gt;, &lt;code&gt;h5&lt;/code&gt;, &lt;code&gt;h6&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Formatting&lt;/td&gt;
&lt;td&gt;&lt;code&gt;strong&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;em&lt;/code&gt;, &lt;code&gt;i&lt;/code&gt;, &lt;code&gt;u&lt;/code&gt;, &lt;code&gt;s&lt;/code&gt;, &lt;code&gt;sub&lt;/code&gt;, &lt;code&gt;sup&lt;/code&gt;, &lt;code&gt;mark&lt;/code&gt;, &lt;code&gt;code&lt;/code&gt;, &lt;code&gt;pre&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lists&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ul&lt;/code&gt;, &lt;code&gt;ol&lt;/code&gt;, &lt;code&gt;li&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Links&lt;/td&gt;
&lt;td&gt;&lt;code&gt;a&lt;/code&gt; (with &lt;code&gt;href&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;rel&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Media&lt;/td&gt;
&lt;td&gt;&lt;code&gt;img&lt;/code&gt; (with &lt;code&gt;src&lt;/code&gt;, &lt;code&gt;alt&lt;/code&gt;, &lt;code&gt;width&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt;), &lt;code&gt;video&lt;/code&gt;, &lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tables&lt;/td&gt;
&lt;td&gt;&lt;code&gt;table&lt;/code&gt;, &lt;code&gt;thead&lt;/code&gt;, &lt;code&gt;tbody&lt;/code&gt;, &lt;code&gt;tr&lt;/code&gt;, &lt;code&gt;td&lt;/code&gt;, &lt;code&gt;th&lt;/code&gt; (with &lt;code&gt;colspan&lt;/code&gt;, &lt;code&gt;rowspan&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quotes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;blockquote&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;[!NOTE]&lt;/span&gt;&lt;br/&gt;
For production use with strict requirements, consider using a dedicated server-side HTML sanitization library such as &lt;a href="http://htmlpurifier.org/" rel="nofollow"&gt;HTML Purifier&lt;/a&gt; (PHP), &lt;a href="https://github.com/cure53/DOMPurify" rel="nofollow"&gt;DOMPurify&lt;/a&gt; (JS), or &lt;a href="https://github.com/mozilla/bleach" rel="nofollow"&gt;Bleach&lt;/a&gt; (Python).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr/&gt;
&lt;h2 id="h-content-security-policy-csp"&gt;🔐 Content Security Policy (CSP)&lt;/h2&gt;
&lt;p&gt;If your application uses a Content Security Policy, ensure the following are allowed for the editor to function:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;Content-Security-Policy&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;script-src&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'self'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;https&lt;/span&gt;&lt;span class="o"&gt;://&lt;/span&gt;&lt;span class="nt"&gt;cdn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;neikiri&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;https&lt;/span&gt;&lt;span class="o"&gt;://&lt;/span&gt;&lt;span class="nt"&gt;cdn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;jsdelivr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;net&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;style-src&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'self'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'unsafe-inline'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;https&lt;/span&gt;&lt;span class="o"&gt;://&lt;/span&gt;&lt;span class="nt"&gt;cdn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;neikiri&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;img-src&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'self'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;data&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;blob&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;[!CAUTION]&lt;/span&gt;&lt;br/&gt;
&lt;code&gt;'unsafe-inline'&lt;/code&gt; for &lt;code&gt;style-src&lt;/code&gt; is required because the editor applies inline styles for font sizes, colors, and image dimensions. If your CSP disallows this, some formatting features will not work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr/&gt;
&lt;h2 id="h-autosave-security"&gt;🔑 Autosave Security&lt;/h2&gt;
&lt;p&gt;Autosave stores content in &lt;code&gt;localStorage&lt;/code&gt;. Be aware:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Content in &lt;code&gt;localStorage&lt;/code&gt; is &lt;strong&gt;not encrypted&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;It is accessible to any JavaScript on the same origin&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For sensitive content, disable autosave and use server-side saving instead&lt;/p&gt;
&lt;p&gt;:::javascript&lt;br/&gt;
new NeikiEditor('#editor', {&lt;br/&gt;
    // Don't use autosave for sensitive forms&lt;br/&gt;
    // Use onSave/onChange to send to your encrypted backend&lt;br/&gt;
    onSave: async function(content) {&lt;br/&gt;
        await fetch('/api/save', {&lt;br/&gt;
            method: 'POST',&lt;br/&gt;
            headers: {&lt;br/&gt;
                'Content-Type': 'application/json',&lt;br/&gt;
                'X-CSRF-Token': getCsrfToken()&lt;br/&gt;
            },&lt;br/&gt;
            body: JSON.stringify({ content })&lt;br/&gt;
        });&lt;br/&gt;
    }&lt;br/&gt;
});&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-xss-prevention-changelog"&gt;🛡️ XSS Prevention Changelog&lt;/h2&gt;
&lt;p&gt;Notable security fixes in Neiki's Editor:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3.0.1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fixed polynomial regex risk in HTML code view — replaced with deterministic linear scan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2.10.1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fixed XSS vulnerability in sanitizer's entity decoding — replaced &lt;code&gt;innerHTML&lt;/code&gt;-based decoding with safe regex approach&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2.9.3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hardened autosave HTML sanitization; fixed unsafe modal value interpolation for link/image dialogs; guarded against prototype pollution (&lt;code&gt;__proto__&lt;/code&gt;, &lt;code&gt;constructor&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2.9.4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reworked autosave storage key normalization to avoid polynomial regex on uncontrolled input; updated HTML sanitization parsing to avoid &lt;code&gt;DOMParser.parseFromString&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id="h-security-checklist"&gt;📋 Security Checklist&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Server-side sanitization before saving to database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;CSRF tokens on all form submissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;&lt;code&gt;imageUploadHandler&lt;/code&gt; validates file types server-side&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Content retrieved via &lt;code&gt;getContent()&lt;/code&gt; sanitized before display to other users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Autosave disabled for sensitive content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;CSP headers configured appropriately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Using latest editor version (check &lt;a href="/p/neiki-editor/wiki/Changelog/"&gt;Changelog&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id="h-related-pages"&gt;🔗 Related Pages&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="./Integration-Guide"&gt;🔗 Integration Guide&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;PHP sanitization helper usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="./Advanced-Features"&gt;🧩 Advanced Features&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Autosave configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/p/neiki-editor/wiki/Changelog/"&gt;📋 Changelog&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Security fix history&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;div align="center"&gt;
  &lt;sub&gt;&lt;a href="./Home"&gt;← Back to Home&lt;/a&gt;&lt;/sub&gt;
&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">neikiri</dc:creator><pubDate>Tue, 09 Jun 2026 06:07:53 -0000</pubDate><guid>https://sourceforge.net6f2b58383f8c13f6855397c2b1a906b96afb34a6</guid></item></channel></rss>