Permintaan Http adalah sebahagian daripada aplikasi WEB, yang membolehkan pelanggan bertukar data dengan pelayan dan melaksanakan pelbagai operasi. Keselamatan adalah salah satu keperluan asas bagi aplikasi Rangkaian. Dalam python, terdapat banyak cara untuk melindungi aplikasi web daripada serangan.
- Menggunakan protokol https
Protokol HTTPS ialah versi selamat protokol HTTP yang menggunakan penyulitan Transport Layer Security (TLS) atau Secure Socket Layer (SSL) untuk melindungi komunikasi antara aplikasi web dan klien. Dalam Python, protokol HTTPS boleh didayakan menggunakan kod berikut:
import ssl
context = ssl.SSLContext()
context.load_cert_chain("server.crt", "server.key")
server = http.server.HTTPServer(("", 443), HTTPSHandler)
server.Socket = context.wrap_socket(server.socket, server_side=True)
server.serve_forever()
Salin selepas log masuk
- Gunakan perlindungan CSRF
CSRF (Cross-site Request Forgery) ialah vektor serangan yang membenarkan penyerang menggunakan penyemak imbas mangsa untuk melakukan tindakan berniat jahat pada tapak web sasaran. Dalam Python, perlindungan CSRF boleh didayakan menggunakan kod berikut:
from flask.ext.csrf import CSRFProtect
csrf = CSRFProtect()
csrf.init_app(app)
Salin selepas log masuk
- Gunakan perlindungan XSS
XSS (skrip merentas tapak) ialah teknik serangan yang membenarkan penyerang menyuntik skrip berniat jahat pada tapak web sasaran untuk mencuri data pengguna atau mengawal penyemak imbas pengguna. Dalam Python, perlindungan XSS boleh didayakan menggunakan kod berikut:
from flask.ext.xssfilter import XSSFProtect
xss = XSSFProtect()
xss.init_app(app)
Salin selepas log masuk
- Gunakan perlindungan suntikan sql
Suntikan SQL ialah teknik serangan yang membolehkan penyerang mencuri data atau merosakkan pangkalan data dengan menghantar pertanyaan berniat jahat ke pangkalan data. Dalam Python, perlindungan suntikan SQL boleh didayakan menggunakan kod berikut:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
@app.route("/")
def index():
users = db.session.execute("SELECT * FROM users")
return render_template("index.html", users=users)
Salin selepas log masuk
- Gunakan perlindungan muat naik fail
Muat naik fail ialah vektor serangan yang membenarkan penyerang memuat naik fail berniat jahat ke tapak web sasaran untuk mencuri data atau merosakkan tapak web. Dalam Python, perlindungan muat naik fail boleh didayakan menggunakan kod berikut:
from flask import request, send_from_directory
@app.route("/uploads/<path:filename>")
def uploaded_file(filename):
return send_from_directory("uploads", filename)
@app.route("/upload", methods=["POST"])
def upload_file():
file = request.files["file"]
if file and file.filename.rsplit(".", 1)[1].lower() in ALLOWED_EXTENSIONS:
file.save(os.path.join(app.config["UPLOAD_FOLDER"], file.filename))
return redirect(url_for("uploaded_file", filename=file.filename))
else:
return "Invalid file type."
Salin selepas log masuk
- Gunakan perlindungan serangan DDoS
Serangan DDoS (Distributed Denial of Service) ialah sejenis serangan yang menggunakan botnet yang besar untuk menghantar sejumlah besar permintaan ke tapak web sasaran, menyebabkan tapak web tidak berfungsi dengan baik. Dalam Python, perlindungan serangan DDoS boleh didayakan menggunakan kod berikut:
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def index():
return "Hello, World!"
@app.route("/slow")
def slow():
time.sleep(10)
return "Slow page"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=80)
Salin selepas log masuk
Gunakan - Log untuk merekod
Pengelogan ialah alat penting untuk menjejak tingkah laku aplikasi dan membantu mendiagnosis masalah. Dalam Python, pengelogan boleh didayakan menggunakan kod berikut:
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler("app.log")
handler.setLevel(logging.DEBUG)
fORMatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
Salin selepas log masuk
Permintaan HTTP adalah bahagian penting dalam aplikasi web. Dalam Python, terdapat banyak cara untuk melindungi aplikasi web daripada serangan. Dengan menggunakan protokol HTTPS, perlindungan CSRF, perlindungan XSS, perlindungan suntikan SQL, perlindungan muat naik fail, perlindungan serangan dan pengelogan DDoS, kami boleh memastikan keselamatan data dan integriti aplikasi web. Atas ialah kandungan terperinci Permintaan dan Keselamatan HTTP Python: Melindungi Aplikasi Web Anda daripada Serangan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!