基于 Django1.10 文档的深入学习(31)—— settings 之 ALLOWED_HOSTS

本文详细介绍了Django框架中的ALLOWED_HOSTS设置项,解释了如何通过配置该选项来增强应用程序的安全性,防止HTTP主机头部攻击。此外,文章还讲解了不同类型的主机名配置及其适用场景。

ALLOWED_HOSTS

Default: [] (Empty list)

表示此Django站点可以投放的主机/域名的字符串列表。这是防止HTTP主机头部攻击的安全措施,即使在许多看似安全的Web服务器配置下也是如此。

此列表中的值可以是完全限定名称(例如“www.example.com”),在这种情况下,它们将完全匹配请求的主机标头(不区分大小写,不包括端口)。以期间开头的值可以用作子域通配符:'.example.com'将匹配example.comwww.example.comexample.com的任何其他子域。值“*”匹配任何东西;在这种情况下,您有责任提供您自己对Host头的验证(可能在中间件中);如果是这样,中间件必须首先列在MIDDLEWARE中)。

Django还允许任何条目的完全限定域名(FQDN)。某些浏览器在主机标头中包含一个后跟点,Django在执行主机验证时将其标记。

如果主机头(或X-Forwarded-Host(如果USE_X_FORWARDED_HOST已启用))与此列表中的任何值不匹配,则django.http.HttpRequest.get_host()方法将引发SuspiciousOperation

DEBUG为True并且ALLOWED_HOSTS为空时,主机将针对['localhost','127.0.0.1','[:: 1]']进行验证。

此验证仅适用于get_host();如果您的代码直接从request.META访问Host头,您将绕过此安全保护。

在Django更改1.10.3: 在旧版本中,如果DEBUG = True,则未检查ALLOWED_HOSTS。这也在Django 1.9.11和1.8.16中改变,以防止DNS重新绑定攻击。

### 鼠标连点器的下载与使用教程 #### 软件功能概述 鼠标连点器是一种能够帮助用户自动完成重复性鼠标点击操作的工具,适用于多种场景,例如游戏操作、办公自动化等。其主要作用在于提升效率并减少手动操作带来的疲劳感[^1]。 #### 下载途径 通常情况下,鼠标连点器可以通过以下几种方式获取: - **官方网站**:许多开发者会提供官方版本供用户免费或付费下载。 - **第三方平台**:部分应用分发网站也会提供此类软件,但在选择时需注意安全性,避免下载到带有恶意代的版本。 - **自制脚本**:对于熟悉编程技术的用户来说,可以利用 Python 等语言自行开发适合自己的鼠标连点器[^4]。 #### 安装过程 安装鼠标连点器的过程相对简单,一般遵循以下流程: 1. 下载完成后打开 `.exe` 文件启动安装向导; 2. 按照提示逐步设置安装路径及其他参数,默认选项即可满足大部分需求; 3. 点击“完成”按钮结束整个安装环节[^2]。 #### 基础配置与使用说明 首次运行该类应用程序后,可能需要进行一定的初始化设定才能正常使用全部特性: - 设置触发条件:定义何时启用连续点击模式,比如通过指定快捷键实现开关控制。 - 自定义频率调节:依据实际应用场景调整每秒钟内的点击次数或者两次之间的时间间隔。 - 功能扩展支持:某些高级产品还允许绑定额外的功能模块,像图片识别定位目标位置再实施动作等功能[^3]。 #### 制作个性化解决方案 (可选) 如果现有市场上的成品无法完全契合个人特殊要求,则考虑借助开源社区资源学习如何构建专属方案也是一个不错的选择。以下是基于 Python 的简易示例代片段用于创建基础型鼠标连点器: ```python import time import threading from pynput.mouse import Button, Controller as MouseController from pynput.keyboard import Listener, KeyCode, Key delay = 0.01 button = Button.left start_stop_key = KeyCode(char='s') exit_key = KeyCode(char='e') class ClickMouse(threading.Thread): def __init__(self, delay, button): super().__init__() self.delay = delay self.button = button self.running = False self.program_running = True def start_clicking(self): self.running = True def stop_clicking(self): self.running = False def exit(self): self.stop_clicking() self.program_running = False def run(self): while self.program_running: while self.running: mouse.click(self.button) time.sleep(self.delay) mouse = MouseController() click_thread = ClickMouse(delay, button) click_thread.start() def on_press(key): if key == start_stop_key: if click_thread.running: click_thread.stop_clicking() else: click_thread.start_clicking() elif key == exit_key: click_thread.exit() listener.stop() with Listener(on_press=on_press) as listener: listener.join() ``` 上述脚本实现了简单的按键切换逻辑来开启/关闭自动点击行为,并提供了退出机制以便安全终止进程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值