menggunakan aplikasi kelalang selamat dengan Gunicorn, nginx dan mari enkripsi
Flask adalah rangka kerja python untuk membina aplikasi web. Dengan Flask, pemaju dengan mudah boleh menentukan penghalaan, memproses permintaan dan respons HTTP, dan menjadikan kandungan dinamik menggunakan templat Jinja2. Ia juga menyokong sambungan yang membolehkan pemaju mengintegrasikan ciri -ciri seperti akses pangkalan data, pemprosesan borang, dan pengesahan pengguna.Artikel ini akan menerangkan cara menggunakan Gunicorn untuk menggunakan aplikasi Flask dan melaksanakan perlindungan CSRF dan dasar keselamatan kandungan (CSP). Kami juga akan menyediakan proksi terbalik menggunakan NGINX dan memohon sijil SSL percuma melalui Let's Encrypt untuk melaksanakan HTTPS.
menggunakan contoh awan yang dioptimumkan vultr
Tambah fail kod aplikasi demo
Sediakan persekitaran maya pythonsudo apt install python3-venv
Buat persekitaran maya: python3 -m venv myenv
mengaktifkan persekitaran maya: source myenv/bin/activate
Repositori GitHub Clone:
git clone https://github.com/mayankdebnath/flask-todo-demo.git
Navigasi ke Direktori Projek: cd flask-todo-demo/sample/
Memasang Pakej Flask dan Gunicorn: pip install flask gunicorn
Benarkan sambungan masuk ke port 5000: ufw allow 5000
Dasar Keselamatan Kandungan (CSP) adalah lapisan keselamatan tambahan untuk aplikasi web yang melindungi mereka dari serangan berniat jahat. CSP menunjukkan sumber -sumber penyemak imbas yang membolehkan untuk memuatkan pada laman web tertentu. Biasanya, pentadbir laman web mengkonfigurasi CSP dengan menambah tajuk khas ke respons pelayan laman web, dan penyemak imbas kemudian menerima tajuk CSP dan memahami sumber yang dibenarkan untuk dimuatkan. Talisman adalah lanjutan flask yang memudahkan proses menambah CSP ke aplikasi flask.
pip install flask-wtf talisman
nano app.py
from talisman import Talisman talisman = Talisman( app, content_security_policy={ 'default-src': ['\'self\''], 'script-src': ['\'self\'', '\'unsafe-inline\'', 'https://code.jquery.com'], 'style-src': ['\'self\'', '\'unsafe-inline\'', 'https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css', 'https://todoapp5.ddns.net/static/styles.css', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css'], }, force_https=True, session_cookie_secure=True, frame_options='DENY', )
from flask_wtf.csrf import CSRFProtect app.config['SECRET_KEY'] = 'your_secret_key_here' csrf = CSRFProtect(app) csrf._csrf_request_token_key = 'X-CSRFToken'
simpan dan tutup fail.
cd templates
nano index.html
var csrfToken = $('input[name="csrf_token"]').val(); $.ajaxSetup({ beforeSend: function(xhr, settings) { if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) { xhr.setRequestHeader("X-CSRFToken", csrfToken); } } });
simpan dan tutup fail.
8. Keluar Direktori Templat: cd ..
Konfigurasi nginx sebagai proksi terbalik
nginx bertindak sebagai proksi terbalik antara pelayan web dan klien. Ia memisahkan permintaan masuk berdasarkan tetapan konfigurasi permintaan anda. Dalam seksyen ini, kami akan mengkonfigurasi permohonan untuk proksi terbalik untuk pemprosesan permintaan yang cekap dan mengimbangi beban. Kami juga akan memohon sijil SSL percuma dari Let's Encrypt untuk melaksanakan HTTPS, dengan itu melindungi komunikasi antara pengguna dan pelayan Web.
ns1.vultr.com
dan ns2.vultr.com
. sudo apt install nginx
sudo nano /etc/nginx/sites-available/app.conf
server { listen 80; listen [::]:80; server_name <your_domain>; location / { proxy_pass http://127.0.0.1:5000/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
sudo ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo ufw allow 80/tcp && sudo ufw allow 443/tcp
sudo snap install --classic certbot
sudo certbot --nginx -d example.com -d www.example.com
gunicorn -b 0.0.0.0:5000 app:app
https://<your_domain></your_domain>
Lakukan lebih banyak dengan aplikasi python pada vultr
Kesimpulan
Artikel ini meneroka cara menggunakan aplikasi flask menggunakan proksi terbalik NGINX dan Gunicorn, dan melaksanakan perlindungan CSRF dan CSP. Kami juga melindungi keselamatan aplikasi kami dengan menambah sijil SSL dan membolehkan akses HTTPS.
Artikel ini ditaja oleh Vultr. Vultr adalah platform pengkomputeran awan swasta terbesar di dunia. Vultr disayangi oleh pemaju dan telah menyediakan pengkomputeran awan global yang fleksibel dan berskala, GPU awan, penyelesaian logam dan awan yang terdedah kepada lebih daripada 1.5 juta pelanggan di 185 negara. Ketahui lebih lanjut mengenai Vultr
Atas ialah kandungan terperinci Cara Menggunakan Aplikasi Flask di Vultr. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!