python-3.x - 使用 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 请求转换为数据库条目的所有视图函数中。但是,我想知道这是否是向网站发送信息的安全方式?
解决方案
推荐阅读
- html - 与会员电子邮件一起使用的 HTML 电子邮件设计(呃?)
- vue.js - 使用 vue-cookies 时我无法获取 sessionid
- excel - 从 VBA 返回 SAP 初始屏幕
- handlebars.js - Handlebars 显示 AJAX JSON 响应
- wordpress - 我在 wordpress 中创建了自定义帖子和自定义分类法
- css - span 类型的中心占位符
- javascript - 如何使用javascript将对象转换为二维数组
- ruby-on-rails - 轨道控制器中空附件的 ActiveSupport::MessageVerifier::InvalidSignature
- mysql - GREATEST() & LEAST() 函数在 MySQL 5.7 的存储过程中不能使用 TIME 变量
- mongodb - 有多个数据库时如何在 MongoRepository 中指定使用 mongo 数据库