📝 发现内容有误?点击此处直接编辑
📝 配套习题(36 题)
以下关于Python中eval()和exec()安全防护的说法,哪项是错误的?
以下哪些是Python中常见的代码注入攻击向量?
Jinja2服务端模板注入(SSTI)的核心原因是模板引擎会将用户输入作为________执行,而非仅作为字符串输出。要安全渲染用户输入,应使用{{ ____________ }}进行HTML转义,或将用户数据通过render_template()的______传递。检测SSTI漏洞常用payload为{{ 7*7 }},若页面返回______则存在漏洞。
在使用subprocess模块执行外部命令时,以下哪种方式最安全?
使用pickle模块的HIGHEST_PROTOCOL版本可以防止反序列化攻击。
以下哪些方法可用于Python沙箱逃逸?
以下哪种方式最容易导致API密钥泄露到Git仓库?
以下哪些是Python中安全处理敏感数据的正确做法?
在Django项目中,敏感配置应从settings.py中分离,推荐使用django-_______包。该包允许将配置存储在.env文件,通过os.environ.get()或Env()类读取。对于数据库密码等敏感值,应使用Env.______()方法获取。在部署时,生产环境的敏感配置应通过________注入,而非存储在代码仓库中。
在Python Web应用中,将完整的异常堆栈信息返回给用户是安全实践,有助于用户理解错误原因。
在Python中处理内存中的敏感数据(如密码),以下哪种做法最不安全?
以下哪些是防止敏感数据泄露到日志的正确做法?
在使用Python的requests库发送HTTPS请求时,以下哪种配置最不安全?
在生产环境中,应强制使用TLS 1.2或更高版本,并禁用TLS 1.0和TLS 1.1。
以下哪些是配置HTTPS连接时的安全最佳实践?
根据OWASP Top 10,以下哪种漏洞在2021年排名第一位?
在Flask应用中使用flask_wtf.csrf.CSRFProtect可以自动保护所有POST请求免受跨站请求伪造(CSRF)攻击。
以下哪些是防止跨站脚本攻击(XSS)的正确做法?
在处理用户输入时,以下哪种验证策略是最正确的?
以下关于使用正则表达式进行输入验证的说法,哪些是正确的?
Python中进行表单验证推荐使用________库,它通过类型注解自动验证数据。对于邮箱验证可使用EmailStr类型,对于URL验证可使用_______类型。防止路径遍历攻击应使用os.path.________()规范化路径,再检查是否在允许目录内。对于文件上传,应验证文件扩展名使用______而非黑名单。
以下关于密码哈希存储的说法,哪项是最正确的?
以下哪些是配置密码哈希算法时的正确安全实践?
bcrypt哈希输出格式为$2b$______$salt22chars_hash31chars。其中$2b$表示算法版本,12表示________(迭代次数为2^12次),salt占22个字符,哈希值占31个字符。验证密码使用bcrypt._______()函数,它会自动从哈希字符串中提取盐值进行比对。argon2算法比bcrypt更适合抵抗______攻击,因为它需要大量内存计算。
以下关于Python中加密操作的说法,哪项是正确的?
使用Python的cryptography库进行加密时,以下哪些是安全最佳实践?
混合加密架构中,使用______对称加密加密大量数据,使用______非对称加密加密对称密钥。发送方用接收方的______加密AES密钥,接收方用自己的______解密获得AES密钥后再解密数据。这种方式解决了对称加密的密钥分发问题,同时保持了非对称加密的安全性和对称加密的高效性。
在Python中生成用于密码学目的的随机数,应使用哪个模块?
Python的random模块使用Mersenne Twister算法,生成的随机数可以被预测,因此不适合用于生成密码学安全令牌。
以下哪些是Python secrets模块的正确使用场景?
Python ssl模块中,使用ssl.create________context()创建默认安全上下文。设置最小TLS版本使用context.minimum_version = ssl.TLSVersion.TLS______。加载证书文件使用context.load_______locations(cafile)方法。HTTPS请求时,将SSL上下文传递给HTTP库使用urllib.request._______(url, context=context)。
防止SQL注入的核心原则是使用______查询,而非字符串拼接。在Python中使用SQLAlchemy时,使用session.execute(text("SELECT * FROM users WHERE id=:id"), {'id': user_id})。使用raw SQL时,参数使用______而非直接拼接。ORM框架自动处理参数化,如Django ORM的User.objects.get(id=user_id)。验证用户输入的白名单正则使用re._________()而非re.search()。
输入清洗和输入验证是相同的安全措施,只是名称不同。
密码哈希的盐值必须保密存储,否则攻击者可以利用盐值破解密码。
加密和哈希是相同的操作,都可以将数据转换为不可读形式,并且都可以逆向还原原始数据。
Python secrets模块提供密码学安全随机数生成。生成URL安全令牌使用secrets.token_______(n),返回约1.3n字符的字符串。生成十六进制令牌使用secrets.token______(n),返回2n字符的十六进制字符串。生成随机字节使用secrets.token______(n)。从序列中安全随机选择使用secrets.______(sequence)。
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验