# 安全

# 编码后的 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 文件中修改。