安全防范
程序运行安全性
有以下一些安全措施可以提高服务器的安全性:
- 确保 Artalk 运行在非
root
用户或 Docker 容器中,让 Artalk 运行在较低的权限以及隔离的环境中,以降低程序被攻击后的危害。 - 保持 Artalk 的版本为最新,新版可能修复了一些安全漏洞,以及提升了安全性。
- 确保 Artalk 运行在 HTTPS 协议下,以防止数据被中间人窃取。
- 设置强度足够的密码,并配置好验证码等安全措施,以防止密码被破解。
- 设置
trusted_domains
,以防止恶意的跨域请求。 - 定期备份数据库,以防止数据丢失。
程序设计安全性
用户身份凭证存储
Artalk 在努力保护用户的安全。参考 OWASP 安全备忘录 中提到的内容,Artalk 的开发对于来自用户输入的任何数据始终持以怀疑的态度,我们严格遵循以下准则防范 XSS 攻击:
- 不直接或间接地调用
innerHTML
输出未经处理的用户输入数据,而是使用innerText
。 - 需要额外注意将用户输入数据带入程序上下文时的处理,防止非法数据在页面被执行。例如不要在
setAttribute
时直接引用来自用户的输入值。 - 注意类型合法性判断、做好类型的转换。例如 URL 以
javascript:
前缀开头应被视为非法。 - 不要去调用一些高风险的内置函数,因为会带来潜在的安全隐患。例如:
eval()
。 - 注意来自内置 API 的数据,应任被视为不可信的。例如:
location.hash.split("#")[1]
。
跨域请求安全性
参考:Cross-Origin Resource Sharing (CORS) | MDN
【待补充】
API 设计安全性
【待补充】
写在结尾
Artalk 的功能在不断完善,同时也在不断向提高安全性的目标努力,但难免存在可能的问题,如果您发现了 Artalk 的安全漏洞,请通过 GitHub Issues 或者邮箱 artalkjs@gmail.com 快速向我们取得联系,我们会尽最大的努力在第一时间解决!感谢您的支持!