首页 > 解决方案 > 使用 Python 请求将数据安全地发布到 Django 网站

问题描述

我想将数据从另一台计算机(Raspberry Pi)发布到我的 Django 网站,以便我可以使用该数据在网站的数据库中创建一个条目。

以下代码将我登录到网站并成功发送 POST 数据,以便我能够使用 POST 数据创建一个数据库条目,尽管我担心安全性。

# Imports
import requests

# Constants
LOGIN_URL = "http://127.0.0.1:8000/login/"
SAVE_DATA_URL = "http://127.0.0.1:8000/save_data/"

login_data = {
    "username": "Test",
    "password": "test_password123",
    "next": "/"
}

data_package = {
    "title": "Testing POST",
    "contents": "Lorem ipsum dolor sit."
}

with requests.Session() as s:

    # --- Start Login --- #

    # Get login page CSRF Token and add it to the login data
    r = s.get(LOGIN_URL)
    csrf_token = r.cookies["csrftoken"]
    login_data["csrfmiddlewaretoken"] = csrf_token

    # Post login data to login to the website
    r = s.post(LOGIN_URL, data=login_data, headers=dict(Referer=LOGIN_URL))

    # --- End Login --- #

    # --- Start POST Data --- #

    # Get save data page CSRF Token and add it to the data package
    r = s.get(SAVE_DATA_URL)
    csrf_token = r.cookies["csrftoken"]
    data_package["csrfmiddlewaretoken"] = csrf_token

    # Post error data to the website
    r = s.post(SAVE_DATA_URL, data=data_package)

    # --- End POST Data --- #

我已经添加@login_required到用于将 POST 请求转换为数据库条目的所有视图函数中。但是,我想知道这是否是向网站发送信息的安全方式?

标签: python-3.xdjangopython-requests

解决方案


推荐阅读