|
6 | 6 | gtag('js', new Date()); gtag('config', 'UA-7722718-13');</script> |
7 | 7 |
|
8 | 8 | <meta charset="utf-8"/> |
9 | | - <meta name='date' content='2025-12-09T08:12:49.9541010Z'> |
| 9 | + <meta name='date' content='2025-12-13T11:37:57.2706896Z'> |
10 | 10 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
11 | 11 | <link rel="icon" type="image/svg" href="/img/logo.svg"> |
12 | 12 | <title>React Templates</title> |
@@ -1722,6 +1722,37 @@ <h3 id="production-3">Production<a class="header-anchor" href="javascript:;" onc |
1722 | 1722 | classDef nextApp fill:#f3e8ff,stroke:#6b21a8,stroke-width:2px,color:#6b21a8 |
1723 | 1723 | classDef static fill:#ecfdf5,stroke:#047857,stroke-width:2px |
1724 | 1724 | </pre> |
| 1725 | +<h3 id="security">Security<a class="header-anchor" href="javascript:;" onclick="location.hash='#security'" aria-label="Permalink">​</a></h3> |
| 1726 | +<pre class="mermaid">--- |
| 1727 | +config: |
| 1728 | + layout: dagre |
| 1729 | + look: neo |
| 1730 | + theme: redux |
| 1731 | + themeVariables: |
| 1732 | + edgeLabelBackground: '#ffffff' |
| 1733 | +--- |
| 1734 | +flowchart TB |
| 1735 | + subgraph NET[".NET Process (port 8080)<br>(root user)"] |
| 1736 | + NETAPI["/app/dotnet/<br>rwx------ root<br><br>💾 App_Data/<br>📄 appsettings<br>📦 *.dll<br>"] |
| 1737 | + end |
| 1738 | + subgraph NODE["Node.js Process (port 3000)<br>(nextjs user)"] |
| 1739 | + NODECLIENT["/app/nextjs/<br>r-x--- nextjs<br><br>📁 node_modules/<br>📦 dist/<br>🎨 public/<br>📄 package.json"] |
| 1740 | + end |
| 1741 | + subgraph Docker["🐳 Docker Container"] |
| 1742 | + NET |
| 1743 | + NODE |
| 1744 | + end |
| 1745 | + NET <-- (Proxy) --> NODE |
| 1746 | + BLOCK["✅ Only .NET CAN access /app/dotnet/<br><br>🚫 Node.js CAN ONLY access /tmp + /app/nextjs"] |
| 1747 | + |
| 1748 | + BLOCK:::security |
| 1749 | + classDef security fill:#ffebee,stroke:#c62828,stroke-width:2px |
| 1750 | + style NETAPI fill:#bbdefb,stroke:#1976d2 |
| 1751 | + style NODECLIENT fill:#ffe0b2,stroke:#f57c00 |
| 1752 | + style NET fill:#e3f2fd,stroke:#1976d2,stroke-width:2px |
| 1753 | + style NODE fill:#fff3e0,stroke:#f57c00,stroke-width:2px |
| 1754 | + style Docker fill:#f0f0f0,stroke:#333,stroke-width:3px |
| 1755 | +</pre> |
1725 | 1756 | </div> |
1726 | 1757 |
|
1727 | 1758 | <div class="not-prose"></div> |
@@ -1830,6 +1861,12 @@ <h5 class="text-slate-900 font-semibold mb-4 text-sm leading-6 dark:text-slate-1 |
1830 | 1861 | Production |
1831 | 1862 | </span> |
1832 | 1863 | </li> |
| 1864 | + <li data-id="security" class="text-gray-500 hover:text-gray-900"> |
| 1865 | + <span v-hash="'#security'" class="cursor-pointer flex text-sm transform transition-colors duration-200 py-2"> |
| 1866 | + <svg width="3" height="24" viewBox="0 -9 3 24" class="mr-2 overflow-visible"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg> |
| 1867 | + Security |
| 1868 | + </span> |
| 1869 | + </li> |
1833 | 1870 | </ul> |
1834 | 1871 | </li> |
1835 | 1872 | </ul> |
|
0 commit comments