Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Melayan Fail Statik dengan Selamat dalam Aplikasi Kelalang Saya?

Bagaimanakah Saya Boleh Melayan Fail Statik dengan Selamat dalam Aplikasi Kelalang Saya?

Mary-Kate Olsen
Lepaskan: 2024-12-25 06:22:16
asal
202 orang telah melayarinya

How Can I Securely Serve Static Files in My Flask Application?

Menyajikan Fail Statik dalam Kelalang: Panduan Komprehensif

Kelalang menyediakan hidangan fail statik yang mudah, biasanya digunakan untuk halaman HTML, lembaran gaya dan fail JavaScript. Walaupun nampaknya mudah, adalah penting untuk memahami pendekatan yang disyorkan untuk mengelakkan kelemahan keselamatan.

Menggunakan Konfigurasi Folder

Dalam pengeluaran, wakilkan fail statik yang disiarkan ke web khusus pelayan, seperti Nginx atau Apache, untuk mengendalikan trafik tinggi dengan cekap. Konfigurasikan pelayan ini untuk menyampaikan permintaan kepada folder tertentu yang mengandungi fail statik anda.

Laluan Fail Statik Flask

Flask secara automatik menetapkan laluan untuk fail statik yang terletak dalam "/ statik" bersebelahan dengan aplikasi Flask anda. Laluan ini boleh diakses menggunakan url_for:

url_for('static', filename='js/analytics.js')
Salin selepas log masuk

Menggunakan send_from_directory

Dalam kes di mana laluan tersuai atau semakan kebenaran diperlukan, pertimbangkan send_from_directory. Ia memastikan laluan yang dibekalkan pengguna terkandung dalam direktori yang selamat:

@app.route('/reports/<path:path>')
def send_report(path):
    return send_from_directory('reports', path)
Salin selepas log masuk

Pertimbangan Keselamatan

Elakkan menggunakan send_file atau send_static_file dengan laluan yang disediakan pengguna. Kaedah ini terdedah kepada serangan traversal direktori. Sebaliknya, pilih send_from_directory, yang mengendalikan laluan yang dibekalkan pengguna dengan selamat dalam direktori yang diketahui.

Menyajikan Fail daripada Memori

Untuk fail yang dijana dalam memori tanpa ditulis ke sistem fail, lulus objek BytesIO ke send_file. Tentukan argumen tambahan untuk metadata fail yang tidak boleh disimpulkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melayan Fail Statik dengan Selamat dalam Aplikasi Kelalang Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan