| description | Vibe coding guidelines and architectural constraints for NestJS within the Documentation domain. | ||||
|---|---|---|---|---|---|
| tags |
|
||||
| topic | NestJS | ||||
| complexity | Architect | ||||
| last_evolution | 2026-03-29 | ||||
| vibe_coding_ready | true | ||||
| technology | NestJS | ||||
| domain | Documentation | ||||
| level | Senior/Architect | ||||
| version | Latest | ||||
| ai_role | Senior NestJS Expert | ||||
| last_updated | 2026-03-29 |
πΊπΈ English | π·πΊ Π ΡΡΡΠΊΠΈΠΉ
Welcome to the official security policy for the best-practise project. Our goal is to ensure the maximum security and reliability of meta-instructions (Vibe Coding) for AI agents (Cursor, Windsurf, Copilot, Antigravity, Aider).
Since this repository serves as an "AI Knowledge Base," our security model differs from traditional software development projects.
We actively support and update only the latest major versions of our architectural and technological rules.
| Version / Branch | Security Support | Support Status |
|---|---|---|
main (Current) |
β Supported | |
v1.x |
β Unsupported | |
| Legacy Branches / PRs | β Unsupported |
Please DO NOT create public issues if you discover a critical vulnerability or potentially dangerous AI instructions in the repository (e.g., instructions that open backdoors via agents).
Secure Reporting Process:
- Navigate to the Security Advisories tab or contact the maintainers directly.
- Describe the issue in detail: specify the exact
.mdfile containing the vulnerability. - Explain how an AI agent might incorrectly or destructively interpret the instruction.
- Attach a Proof of Concept (PoC prompt) if possible, demonstrating the exploitation of the "flawed" rule in Cursor or Windsurf.
This project focuses on Context Injection. Therefore, we classify threats specifically for LLMs and agentic IDEs:
- Prompt Injections: Hidden or "poisonous" instructions in rule files that force the agent to write malicious code or ignore other project security policies.
- Insecure Architectural Patterns: Instructions recommending the use of vulnerable dependencies, disabling CORS in production-ready examples, or exposing APIs without proper authentication.
- Data Leaks: Code examples or AI configuration rules that encourage agents (or developers) to leave API keys and tokens in the codebase.
| Severity | Incident Description within Vibe Coding | Priority |
|---|---|---|
| π΄ Critical | Malicious injections guaranteed to lead to code compromise or RCE executed by the agent. | P0 |
| π High | Recommendations grossly violating basic security principles (e.g., eval, unvalidated innerHTML in Frontend rules). |
P1 |
| π‘ Medium | Instructions leading to the creation of logical bugs (Bad Smells, Race conditions) in the agent-generated code. | P2 |
| π’ Low | Typos in linters, broken or outdated minor style rules. | P3 |
Below is a visual flowchart of our standard process for handling discovered threats in meta-instructions:
graph TD
A(["User finds dangerous rule"]) --> B{"Is it critical?"}
B -->|"Yes (P0, P1)"| C["Submit private Security Advisory"]
B -->|"No (P2, P3)"| D["Open standard Issue / Pull Request"]
C --> E["Threat analysis by maintainers"]
E --> F["Vulnerability isolation, disable rule"]
F --> G["Patch MD file and update instructions"]
G --> H["Publish Security Release & Notify"]
H --> I(["Vulnerability resolved"])
D --> G
classDef critical fill:#ffebeb,stroke:#ff0000,stroke-width:2px;
classDef safe fill:#ebffeb,stroke:#00aa00,stroke-width:2px;
class C critical;
class D safe;
%% Added Design Token Styles for Mermaid Diagrams
classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000;
classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000;
classDef layout fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px,color:#000;
class E component;
class F component;
class G component;
class H component;
class I component;
class B component;
If you propose new instructions or architectural standards (via PR), strictly adhere to the security rules:
- No Binary Files: Never add executable scripts if their code cannot be verified directly.
- Security Annotations: Any code examples for authentication or configuration must be accompanied by
// SECURE:comments or explanations of why this approach is standard and secure. - Path Restrictions: Absolute paths and hardcoded test secrets are strictly forbidden in rules (e.g., inside
backend/nestjs/security.md). Always use placeholders like<YOUR_SECRET_KEY>.
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ best-practise. ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° β Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ (Vibe Coding) Π΄Π»Ρ ΠΠ-Π°Π³Π΅Π½ΡΠΎΠ² (Cursor, Windsurf, Copilot, Antigravity, Aider).
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Β«ΠΠ°Π·ΠΎΠΉ Π·Π½Π°Π½ΠΈΠΉ ΠΠΒ» (AI Knowledge Base), Π½Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈ Π°ΠΏΠ΄Π΅ΠΉΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΌΠ°ΠΆΠΎΡΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ².
| Version / Branch | Security Support | Support Status |
|---|---|---|
main (Current) |
β ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ | |
v1.x |
β ΠΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ | |
| Legacy Branches / PRs | β ΠΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ |
ΠΠΠΠ ΠΠ©ΠΠΠ’Π‘Π― ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ Issue ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΈΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΠ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΡΡΠΈΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠΊΠ΄ΠΎΡΠΎΠ² ΡΠΈΠ»Π°ΠΌΠΈ Π°Π³Π΅Π½ΡΠΎΠ²).
ΠΡΠΎΡΠΎΠΊΠΎΠ» Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΡΡΠΈΠ½Π³Π°:
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π» Security Advisories ΠΈΠ»ΠΈ ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ ΠΌΠ΅ΠΉΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ.
- ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ
.mdΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ·Π²ΠΈΠΌΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½. - ΠΠΏΠΈΡΠΈΡΠ΅ Π²Π΅ΠΊΡΠΎΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΠ-Π°Π³Π΅Π½ΡΠΎΠΌ.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ΅ Proof of Concept (PoC prompt), Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² Cursor ΠΈΠ»ΠΈ Windsurf.
ΠΡ ΠΎΠ±ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΡΡΠ° Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 48 ΡΠ°ΡΠΎΠ² Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ»Π°Π½Π° ΠΌΠΈΡΠΈΠ³Π°ΡΠΈΠΈ.
Π―Π΄ΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ AI Context Injection. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ³ΡΠΎΠ· Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ LLM ΠΈ Π°Π³Π΅Π½ΡΠ½ΡΡ IDE:
- Prompt Injections: Π‘ΠΊΡΡΡΡΠ΅ ΠΈΠ»ΠΈ Β«ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅Β» ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΡΠ°ΠΉΠ»Π°Ρ ΠΏΡΠ°Π²ΠΈΠ», ΠΈΠ½ΠΈΡΠΈΠΈΡΡΡΡΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- Insecure Architectural Patterns: ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π»Π΅Π³ΠΈΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ CORS Π² production-ready ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ API Π±Π΅Π· Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅ΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
- Data Leaks: ΠΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΠ, ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΡΡΠΈΠ΅ Π°Π³Π΅Π½ΡΠΎΠ² (ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²) Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ API-ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π² ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ.
| Severity | Incident Description within Vibe Coding | Priority |
|---|---|---|
| π΄ Critical | ΠΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ, Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠ΅ ΠΊ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ RCE ΡΠΈΠ»Π°ΠΌΠΈ Π°Π³Π΅Π½ΡΠ°. | P0 |
| π High | Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ, ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΡΡΠ°ΡΡΠΈΠ΅ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ eval, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°Π½Π°ΡΠΈΠΈ innerHTML Π² ΠΏΡΠ°Π²ΠΈΠ»Π°Ρ
Frontend). |
P1 |
| π‘ Medium | ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΡΡΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ² (Bad Smells, Race conditions) Π² ΠΊΠΎΠ΄Π΅, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π°Π³Π΅Π½ΡΠΎΠΌ. | P2 |
| π’ Low | ΠΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π»ΠΈΠ½ΡΠ΅ΡΠΎΠ², Π½Π΅ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΈΠ»ΠΈ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΠΌΠΈΠ½ΠΎΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ. | P3 |
Π€ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ³ΡΠΎΠ· Π² ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΡ Π΅ΠΌΠ΅:
graph TD
A(["ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ"]) --> B{"ΠΠ½ΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ?"}
B -->|"ΠΠ° (P0, P1)"| C["ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΡΡΠ½ΠΎΠ΅ Security Advisory"]
B -->|"ΠΠ΅Ρ (P2, P3)"| D["ΠΡΠΊΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Issue / Pull Request"]
C --> E["ΠΠ½Π°Π»ΠΈΠ· ΡΠ³ΡΠΎΠ· ΠΌΠ΅ΠΉΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ"]
E --> F["ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°"]
F --> G["ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ MD ΡΠ°ΠΉΠ»Π° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ"]
G --> H["ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Security Release & Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅"]
H --> I(["Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½Π°"])
D --> G
classDef critical fill:#ffebeb,stroke:#ff0000,stroke-width:2px;
classDef safe fill:#ebffeb,stroke:#00aa00,stroke-width:2px;
class C critical;
class D safe;
%% Added Design Token Styles for Mermaid Diagrams
classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000;
classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000;
classDef layout fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px,color:#000;
class E component;
class F component;
class G component;
class H component;
class I component;
class B component;
ΠΡΠΈ ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΈΠΈ Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² (ΡΠ΅ΡΠ΅Π· Pull Request) ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΡΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ:
- No Binary Files: ΠΠ°ΠΏΡΠ΅Ρ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π½Π΅ ΠΏΠΎΠ΄Π΄Π°ΡΡΠΈΡ ΡΡ ΠΏΡΡΠΌΠΎΠΌΡ Π°ΡΠ΄ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
- Security Annotations: ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ
// SECURE:Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠΌ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. - Path Restrictions: ΠΠ±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΠΈ Π·Π°Ρ
Π°ΡΠ΄ΠΊΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΡ ΡΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°Ρ
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π½ΡΡΡΠΈ
backend/nestjs/security.md). ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»Π΅ΠΉΡΡ ΠΎΠ»Π΄Π΅ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ<YOUR_SECRET_KEY>.