# 安全
# 编码后的 ID
Chevereto 的公共 ID 是经过编码的,以避免枚举和难以猜测的 URL。所有的用户,图片和相册的 ID 都是经过编码的。
对公共 ID 编码,可以避免任何企图的内容枚举攻击。
# 编码和解码 ID
安装 Chevereto 时,系统会创建一个随机生成的 crypt_salt
,供 CHV\encodeID()
和 CHV\decdeID()
函数使用。这允许将存储在数据库中的数字 ID 转换为字母数字 ID,这也意味着公共 ID 因每个不同的安装而不同
# 加大编码 ID
较大的编码 ID 可以更好地保护上传内容的隐私。
你可以通过其他方法来实现更大的编码 ID。
# 改变 id_padding
设置
注意
此方法将影响以前生成的链接。只有在可以安全编辑ID的情况下才能使用它。
进入数据库,找到 chv_settings
表,编辑 setting_name
标识为 id_padding
。(默认为0)。
输入一个像 5000
这样的整数值,将指示系统使用这个基本的padding生成ID。
# 更改 chv_images
表
提示
此方法不会影响之前生成的任何链接
进入数据库,找到 chv_Images
表,将 AUTOINCREMENT
改为您想要使用的 ID 填充
# CSRF 保护
跨站请求伪造( CSRF (opens new window)) 是一种未经用户同意从远程网站传输指令来欺骗网站的漏洞,例如触发删除内容请求。
CSRF 保护是基于对请求令牌的使用。请求令牌是在网站加载时由会话设置的,并在随后的请求中被询问。如果令牌与会话不匹配,则意味着该请求不是由会话发起的,系统将返回一个403错误。
# 密码学
Chevereto 使用 BCrypt (opens new window) 加密方法来存储密码和 cookie 登录信息。社交登录 和 "让我保持登录 " 功能使用 BCrypt 和 随机生成字符串 的强大组合。
# reCAPTCHA
Chevereto 包含了对 reCAPTCHA (opens new window) 的支持,这有助于防止机器人注册并试图强行输入用户密码。在 仪表板 > 设置 > 外部服务 中,你可以启用或禁用 reCAPTCHA,并设置多少次无效尝试会触发 reCAPTCHA。
# 无效请求
无效请求是指当用户输入错误的密码或 CSRF 令牌不匹配时。每次触发无效请求时,系统都会存储触发该无效请求的IP和操作。
系统中有一个硬编码设置,控制每天允许无效请求的限制,当用户达到 CHV_MAX_INVALID_REQUESTS_PER_DAY
时,系统将在 24 小时内不允许该 IP 的请求。这个设置的硬编码默认值是 25 个无效请求,你可以在 /app/loader.php
文件中修改。