V12.3.2 File Execution
Requirement:#
Verify that user-submitted filename metadata is validated or ignored to prevent the disclosure, creation, updating or removal of local files (LFI).
Explanation:#
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Β Π·Π°ΡΠΈΡΠ°Π΅Ρ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Local File Inclusion (LFI), ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. LFI - ΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΡΠ°ΡΠΊΡΡΡΠΈΡ, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ°ΡΠΊΡΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ , Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ.
1 User-Submitted Filename Metadata:
ΠΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΈΠΌΠ΅Π½Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², URL-Π°Π΄ΡΠ΅ΡΠ° ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . 1 Local File Inclusion (LFI):
LFI - ΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΡΡΠΌΠΈ ΠΊ Π½ΠΈΠΌ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΡΡΠΎ Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. 1 Disclosure, Creation, Updating, and Removal:
ΠΠ°Π»ΠΈΡΠΈΠ΅ LFIΒ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅::
- Π Π°ΡΠΊΡΡΡΠΈΠ΅: ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°ΡΠΊΡΡΡΠΈΡ.
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅: ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
- Β ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ.
- Β Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅: ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π°Π»ΡΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Remediation:#
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ LFI:
1 Validate User Inputs:
ΠΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ . 1 Use Whitelists:
ΠΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π΅Π΄ΠΈΡΠ΅ "Π±Π΅Π»ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ" ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΡΠ΅ΠΉ ΠΊ Π½ΠΈΠΌ. ΠΡΠΊΠ»ΠΎΠ½ΡΠΉΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ ΠΏΡΡΠΈ. 1 Avoid Dynamic File Includes:
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π±Π΅Π· ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ°ΠΆΠΈΡΠ΅ΡΡ ΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. 1 Secure File Uploads:
Β ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π° ΠΈΡ ΠΈΠΌΠ΅Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ. 1 Implement Access Controls:
ΠΠ½Π΅Π΄ΡΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΡΡΠΎΠ³ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ. 1 Secure Configuration:
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ.
1 Logging and Monitoring:
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ²Π»ΡΡΡ Π»ΡΠ±ΡΠ΅ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ. 1 Security Testing:
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΈ ΠΎΡΠ΅Π½ΠΊΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ LFI.
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ LFI-ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
- ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask.Β
- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ (UPLOAD_DIRECTORY), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² (ALLOWED_EXTENSIONS).Β
- allowed_file(filename): ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π»ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°.
- sanitize_filename(filename): ΠΡΠΈΡΠ°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, ΡΠ΄Π°Π»ΡΡ Π½Π΅Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎ-ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ.
- ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΡΡΡ (/) Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ POST. ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ. ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ flash-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΡΡΠΏΠ΅Ρ Π΅ ΠΈΠ»ΠΈ Π½Π΅ΡΠ΄Π°ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
- ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΡΡΡ (/uploads/filename) Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ±Π΅Π·Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ LFI-ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠΎΠ½ΡΡΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ "Π€Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½".
- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Flask Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.