Tài liệu

Nắm TicketsX nhanh hơn

Hướng dẫn thiết lập, toàn bộ danh sách lệnh, tính năng Premium và REST API, gom về một chỗ.

13.24

Giới hạn và an toàn

API được dựng sao cho một khóa không bao giờ trở thành cách hại máy chủ, kể cả khi khóa bị lộ. Những lớp bảo vệ sau áp dụng cho mọi yêu cầu.

Ở mọi điểm cuối, việc kiểm tra Premium chạy trước hết thảy, trước cả khi tra khóa và trước khi đếm bất kỳ giới hạn nào, nên máy chủ không còn gói thuê bao luôn nhận đúng một phản hồi 402 thay vì một yêu cầu mới làm được nửa chừng.

  • Không nhắc tên hàng loạt. Mọi tin nhắn gửi qua API (kể cả tin nhắn webhook và thẻ) đều tắt @everyone, @here cùng việc nhắc vai trò tùy tiện. Khi mở ticket, chỉ vai trò đã thiết lập trong bảng và người mở ticket mới được nhắc tới.
  • Không mạo danh. Tên hiển thị của webhook có chứa từ dành riêng như "discord" hay "clyde" sẽ bị thay, còn ảnh đại diện thay thế phải là địa chỉ https:// hợp lệ.
  • Bắt buộc có Premium. API là tính năng Premium. Không còn gói thuê bao thì mọi yêu cầu trả về 402 kèm premium_required: true, và khóa mới thì không tạo cũng không thay được.
  • Giới hạn số lần gọi. Mỗi khóa bị giới hạn theo từng thao tác (ví dụ: mở ticket 10 lần mỗi phút, gửi tin nhắn 30 lần mỗi phút, đổi tên 2 lần mỗi 10 phút, đổi bảng 2 lần mỗi 10 phút, sửa bảng 10 lần mỗi phút, gửi lại bảng 4 lần mỗi 10 phút, đọc 120 lần mỗi phút). Vượt giới hạn thì nhận 429 kèm giá trị retry_after tính bằng giây. Gọi GET /api/token để lấy bảng giới hạn hiện thời.
  • Các phép đọc nặng có giới hạn riêng. Tìm trong bản ghi và tải bản ghi HTML mỗi thứ được 10 lần mỗi phút, còn bản ghi đầy đủ đã lập chỉ mục được 30 lần mỗi phút, nên chúng không bao giờ ăn vào mức 120 lượt đọc mỗi phút vốn đã rộng rãi. Ngoài ra, việc tìm kiếm chỉ chạy nhiều nhất hai lượt cùng lúc trên cả máy chủ và dừng lại với mã 504 nếu quá thời gian cho phép, nên lượng tìm kiếm không bao giờ chen lấn phần việc xử lý ticket.
  • Mức trần ticket đang mở. Khi máy chủ chạm mức trần an toàn về số ticket đang mở, API không mở thêm nữa, còn với người dùng trong danh sách chặn thì không mở ticket chút nào.
  • Quyền ít nhất có thể. Những quyền nhạy cảm (Đọc tin nhắn trong ticket, Xem bản ghi, Tìm trong bản ghi, Tải bản ghi HTML, Dùng thẻ, Đổi tên ticket, Quản lý bảng, Đổi bảng của ticket) đều tắt sẵn và phải bật lên có chủ ý cho từng khóa.
  • Việc đọc dữ liệu cũ đều được ghi lại. Tải về một bản ghi HTML đầy đủ sẽ vào nhật ký hoạt động của máy chủ kèm khóa đã thực hiện, cũng như mọi thay đổi mà API làm ra.
  • Bảng vẫn gắn với thiết lập của bạn. Quyền Quản lý bảng chỉ đổi được vẻ ngoài của bảng (tên, tin nhắn nhúng, nút bấm). Kênh, danh mục, vai trò được nhắc, biểu mẫu và đội hỗ trợ thì không đổi được qua API.
  • Hạn dùng và thay khóa. Khóa đặt được hạn dùng, tắt được hoặc thay mới được từ bảng điều khiển; thay khóa là thông tin mật cũ mất hiệu lực ngay.
  • Chỉ dùng cho một máy chủ. Một khóa chỉ chạy ở chính máy chủ đã tạo ra nó, và mỗi yêu cầu đều được kiểm lại theo máy chủ đó.