Python安全无标准术语,需据场景区分:Web框架权限、密码学库用法、安全编码实践;HMAC须用hmac.HMAC类防扩展攻击;Django login_required失效多因装饰错误或AJAX请求;ast.literal_eval防RCE但有长度与兼容限制。
这个标题没有实际技术指向,无法对应到具体可操作的问题或知识点。
Python 安全系统本身不是标准术语——它可能指代:
Django、Flask)中的认证/授权机制 cryptography、PyCryptodome)的使用方式 如果你遇到的具体问题是:
cryptography 库正确生成和验证 HMAC 签名常见错误是直接拼接密钥和消息后用 hashlib.sha256() 计算,这会导致长度扩展攻击风险。必须用 hmac.HMAC 类,并确保密钥长度符合规范(如 SHA-256 要求密钥不短于 32 字节,否则内部会先哈希)。
import hmac import hashlibkey = b"my_secret_key" message = b"hello world" sig = hmac.new(key, message, hashlib.sha256).digest()
Django 中 login_required 不跳转登录页的典型原因多出现在以下情况:
@method_decorator)settings.LOGIN_URL 是相对路径但没配 BASE_DIR 或没启用 django.contrib.staticfiles
X-Requested-With: XMLHttpRequest,Django 默认返回 403 而非重定向ast.literal_eval 替代 eval 防止 RCE 的边界条件ast.literal_eval 只允许基本字面量(str、int、list、dict 等),但注意:
0x1F 在 Python 3.8+ 才支持,旧版本报错)\x00 在某些场景下可能绕过前期过滤,仍需结合 str.replace('\x00', '')
真正卡住你的,往往不是“学没学过”,而是某个配置项写错位置、某个异常没被
捕获、或者文档里没写的默认行为。盯着报错信息里的那一行 File "...", line X,比看第 560 讲标题有用得多。