內容安全
內容安全檢查使用者在應用中產生的內容:單聊和群聊訊息、聊天室訊息、暱稱和頭像、群資料、群暱稱、入群和好友申請的附言,以及上傳的圖片、語音和影片。檢查分三種時機:
- 傳送前檢查:訊息寫入之前檢查文字,不透過的訊息不會發出;
- 儲存前檢查:資料和申請寫入之前檢查,不透過的不會儲存;
- 事後稽核:內容發出或上傳之後再稽核圖片、語音、影片(以及按設定稽核文字),違規的自動撤回或遮蔽。
檢查的依據是詞庫和第三方稽核服務的結果。命中後按設定拒絕、替換為 * 或送人工稽核;使用者也可以舉報,由你的稽核人員在控制檯處理。違規會記到使用者名稱下,達到你設定的次數時自動禁言或封禁。
本頁說明內容安全的規則,以及它對介面呼叫和客戶端的影響。大部分設定在控制檯完成,見內容安全配置;除第三方稽核賬號外,你的服務端也可以透過介面操作:
| 要做什麼 | 見 |
|---|---|
| 加一批敏感詞,或放行誤判的詞 | 稽核配置與詞庫;規則見本頁詞庫 |
| 試一段文字會不會被攔 | 檢查文字 |
| 把稽核記錄接入你自己的稽核後臺 | 稽核記錄與違規 |
| 違規幾次自動禁言、封禁 | 本頁違規記錄與自動處罰 |
處理客戶端收到的 message_rejected、content_rejected | 本頁呼叫方看到的錯誤 |
| 讓你的服務端發的內容也經過檢查 | 本頁服務端提交的內容 |
預設狀態
新應用預設只有平臺規則生效(見平臺規則與你的規則);你的規則對全部場景啟用,但在你新增詞庫或開啟第三方稽核之前不會攔截任何內容;不自動處罰;允許客戶端舉報。
稽核的內容和時機
| 場景 | 稽核的內容 | 時機 | 方式 |
|---|---|---|---|
message 訊息 | 單聊和群聊訊息中的文字:text 的 text,file 的檔名 name,location 的 name 和 address,custom 的 body 中的全部字串值(可以關閉);image(含縮圖)、video(含封面)、voice 的檔案 | 傳送訊息、批次傳送、編輯訊息之前;訊息發出之後 | 文字在傳送前按詞庫檢查,可以另外開啟傳送前或發出後的第三方文字稽核;圖片、語音、影片在發出後由第三方稽核 |
chatroom_message 聊天室訊息 | 同上 | 傳送之前;推送之後 | 同上。聊天室的傳送前檢查最多 200 毫秒,低優先順序的訊息只按詞庫檢查,也不做事後稽核 |
user_profile 使用者資料 | 暱稱 nickname;頭像 avatar_url | 建立使用者(包括批次建立、客戶端註冊、憑證登入時自動建立)、修改資料之前 | 文字按詞庫檢查,可以開啟第三方文字稽核;頭像可以開啟儲存前的第三方稽核 |
group_profile 群資料 | 群名稱 name、簡介 description、公告 announcement;群頭像 avatar_url | 建群、修改群資料之前 | 同上 |
group_member 群暱稱 | 成員的群暱稱 group_nickname | 修改群暱稱之前 | 按詞庫檢查,可以開啟第三方文字稽核 |
group_request 入群申請 | 申請理由、邀請(包括建群時邀請)的附言 message,拒絕申請或邀請的理由 reason | 申請、邀請、拒絕之前 | 同上 |
friend_request 好友申請 | 附言 message、新增來源 add_source | 傳送好友申請之前 | 同上。新增來源是標識,命中替換的詞時按拒絕處理 |
chatroom_profile 聊天室資料 | 名稱 name、簡介 description、公告 announcement | 建立、修改聊天室之前 | 同上 |
chatroom_attribute 聊天室屬性 | 屬性的值 | 設定之後 | 只按詞庫檢查,違規的屬性被刪除 |
media_upload 上傳的檔案 | 上傳到本服務的使用者頭像、群頭像、聊天室封面,以及群檔案中的圖片、語音、影片;群檔案的檔名 | 上傳完成之後 | 圖片、語音、影片由第三方稽核;群檔案的檔名按詞庫檢查,違規的遮蔽整個檔案 |
- 只檢查本次修改的欄位:修改資料時只檢查與原值不同、不為空的欄位,清空欄位不檢查。資料中已有的舊值不會因為之後新增的詞條而讓無關的修改失敗。
- 訊息附件:訊息中的圖片、語音、影片在訊息的場景稽核,違規時撤回訊息,檔案是本服務的附件時同時遮蔽檔案。上傳時不稽核。
- 不稽核的內容:使用者、群和群成員的自定義屬性,訊息的
ext和push,好友備註,群提示,文件、壓縮包等檔案的內容(只檢查檔名),音視訊通話的內容。 - 批次介面:批次傳送的訊息只檢查一次,結果對全部接收人生效;批次建立使用者時只按詞庫檢查暱稱,需要第三方稽核的暱稱和頭像改為事後稽核,違規的從資料中清除。只推線上的訊息只按詞庫檢查。
服務端提交的內容
你的服務端(OpenAPI)和控制檯提交的內容(建立使用者、修改群資料、以使用者的身份發訊息、設定聊天室屬性等)預設只按平臺規則檢查,不按你的詞庫和第三方稽核檢查:這些通常是你的業務資料和系統通知,由你自己負責。
需要同樣檢查時,在控制檯為對應的場景開啟“服務端提交的內容也檢查”(chatroom_attribute 除外)。服務端提交的內容被拒絕時,不計入任何使用者的違規。
平臺規則與你的規則
每條內容按兩套規則檢查,結果取最嚴格的:
- 平臺規則:平臺維護的詞庫,以及第三方稽核結果中平臺強制處理的類別(預設為涉政
politics、暴恐terrorism、色情porn)。平臺規則對應用內的全部內容生效,包括你的服務端提交的內容,不能用放行詞繞過。平臺規則命中的內容由平臺稽核和處置:撤回訊息時recalled.role為platform,平臺遮蔽的檔案和平臺的封禁你不能解除。平臺對你的應用做過哪些處置,可以在控制檯的“平臺處置”中檢視。 - 你的規則:你在控制檯為應用維護的詞庫、開啟的第三方稽核和按類別的處理方式,在每個場景可以單獨關閉(關閉後這個場景只按平臺規則檢查)。命中的內容進入你的稽核記錄,由你的稽核人員處理。
平臺詞庫的內容對你不可見。控制檯“試一試”和稽核記錄中,平臺詞庫的命中只顯示“平臺規則”和類別,不顯示命中的詞。
稽核的結果
| 結果 | 來源 | 傳送前、儲存前檢查 | 事後稽核 |
|---|---|---|---|
| 拒絕 | 處理方式為拒絕的詞庫;第三方稽核建議攔截(可以按類別改為送審) | 不寫入,呼叫方收到錯誤,見呼叫方看到的錯誤。客戶端提交的計入作者的違規 | 自動撤回訊息、遮蔽檔案、從資料中清除違規的頭像、刪除聊天室屬性,計入作者的違規,並生成稽核記錄等待確認 |
| 替換 | 處理方式為替換的詞庫(只有你的詞庫) | 寫入替換後的內容 | 不適用:事後稽核不改寫已經發出的內容 |
| 送審 | 處理方式為送審的詞庫;第三方稽核建議人工稽核(可以按類別改為不處理) | 照常寫入,同時生成稽核記錄等待人工稽核 | 生成稽核記錄等待人工稽核 |
一次檢查有多種結果時取最嚴格的:拒絕優先於替換,替換優先於送審。替換和送審同時出現時,寫入替換後的內容並送審。
替換
從命中的第一個字元到最後一個字元,原文中的每個字元(包括夾在中間的符號和空格)都換成一個 *,其餘不變,內容不會變長。所有人看到的都是替換後的內容,包括髮送者本人:傳送介面返回的訊息就是替換後的,客戶端傳送成功後應以返回的訊息替換本地的訊息。
例如處理方式為替換的詞庫中有“笨蛋”,使用者傳送“你這個笨蛋,週末一起吃飯”,返回的訊息物件為:
{
"conversation_id": "100311226008993792",
"conversation_type": "single",
"seq": 1,
"message_id": "100311226034159616",
"client_msg_id": "c-20261005-0002",
"sender": "zhangsan",
"sender_type": "user",
"recipient": "lisi",
"type": "text",
"body": {
"text": "你这个**,周末一起吃饭"
},
"ext": null,
"mentions": null,
"reply_to": null,
"need_receipt": false,
"exclude_from_unread": false,
"reactions": null,
"pinned": null,
"edited": null,
"recalled": null,
"erased": false,
"via": "client",
"created_at": "2026-10-04T19:20:59.978Z",
"message_version": 0
}custom 訊息只替換 body 中命中的字串值,鍵、其他值和結構不變;ext 不檢查也不改寫。
呼叫方看到的錯誤
內容被拒絕時,訊息類的介面返回 403 message_rejected,資料和申請類的介面返回 403 content_rejected。錯誤中不包含命中的詞,避免被用來反覆試探詞庫:
code | 返回的介面 | details |
|---|---|---|
message_rejected | 傳送訊息、編輯訊息、傳送聊天室訊息;批次傳送時作為每個接收人的結果返回 | reason |
content_rejected | 建立使用者、修改使用者資料、建群、修改群資料、修改群暱稱、申請入群、邀請入群、拒絕申請或邀請、傳送好友申請、建立和修改聊天室 | reason;field 為被拒絕的欄位,多個欄位被拒絕時為其中的第一個 |
details.reason 的取值:
details.reason | 說明 |
|---|---|
sensitive_content | 命中了拒絕的詞庫 |
provider_block | 第三方稽核判定違規。開啟了頭像稽核時,頭像的地址不是可以公開訪問的 http、https 地址,或是已被遮蔽的檔案,同樣返回這個原因 |
check_timeout | 已停用:第三方稽核只在傳送、儲存之後進行,不再因為超時拒絕內容 |
details.field 的取值為被拒絕的欄位:使用者資料為 nickname、avatar_url;群資料為 name、description、announcement、avatar_url;群暱稱為 group_nickname;入群申請為 message、reason;好友申請為 message、add_source;聊天室資料為 name、description、announcement。
傳送訊息被拒絕:
{
"error": {
"code": "message_rejected",
"message": "消息中含有不允许发送的内容",
"details": {
"reason": "sensitive_content"
},
"request_id": "N2RG5744A7XYFW5QUNLDECBBDG"
}
}修改暱稱被拒絕:
{
"error": {
"code": "content_rejected",
"message": "内容中含有不允许的内容",
"details": {
"field": "nickname",
"reason": "sensitive_content"
},
"request_id": "MEOJNPL33UENE7ZSLOCTVCGMU5"
}
}頭像未透過第三方稽核:
{
"error": {
"code": "content_rejected",
"message": "图片无法通过审核",
"details": {
"field": "avatar_url",
"reason": "provider_block"
},
"request_id": "5HROKLWB343QARNZIKNMGOGZ4N"
}
}批次傳送訊息時,每個接收人的結果中返回同樣的錯誤;批次建立使用者時,被拒絕的使用者出現在 failed 中,code 為 content_rejected。
客戶端遇到這兩個錯誤時,按 details.reason 提示使用者修改內容,不要自動重試同樣的內容。
發出之後的處置
事後稽核判定違規、或稽核人員確認違規時,內容由對應的功能處置,效果與你透過介面操作相同:
- 撤回訊息:訊息的內容被清除,會話中能看到它的使用者都會同步到撤回,見撤回訊息。按你的規則撤回時
recalled.role為server,按平臺規則撤回時為platform,客戶端可以據此顯示不同的提示; - 遮蔽檔案:違規的附件、群檔案和頭像被遮蔽,之後換取下載地址時返回
file_blocked,見下載與管理檔案。被遮蔽的頭像同時從使用者、群或聊天室的資料中清除; - 清除資料:稽核人員可以清除違規的暱稱、頭像、群資料、群暱稱和聊天室資料。只在欄位仍是當時被稽核的值時清除,使用者之後改過的不受影響。清除後與正常修改資料一樣通知相關的客戶端;
- 刪除聊天室屬性:只在屬性的值沒有變化時刪除。
事後稽核通常在圖片發出後 1 分鐘內完成,語音和影片取決於第三方稽核服務,一般幾分鐘。訊息發出後還會按詞庫再檢查一次,傳送前檢查因故障而放行的訊息,命中拒絕的詞時在這一步撤回。
詞庫
每個應用維護自己的詞庫,在控制檯中新增(見內容安全配置),或者呼叫詞庫的介面。詞庫的屬性:
| 屬性 | 取值 | 說明 |
|---|---|---|
| 種類 | block 遮蔽、allow 放行 | 放行詞用來消除誤判,見下文 |
| 處理方式 | reject 拒絕、replace 替換、review 送審 | 只用於遮蔽詞庫 |
| 匹配方式 | contains 包含、exact 完全相同 | 完全相同:整段文字規範化後與詞條相同才命中,適合保留的暱稱(如“官方客服”命中“官方 客服”,不命中“官方客服小王”)。放行詞庫只能用包含 |
| 類別 | 見類別 | 命中時記入稽核記錄和違規 |
| 場景 | 一個或多個場景,或全部場景 | 詞庫只在這些場景中生效 |
| 啟用 | 是、否 | 停用的詞庫不參與匹配,詞條保留 |
規範化:匹配之前,文字和詞條都按同樣的規則規範化,用全形字元、繁體字、夾雜符號和空格、形近字母寫出的詞同樣能被發現:
- 全形轉為半形,圈號數字、上標等相容字元轉為普通字元;
- 轉為小寫;
- 繁體轉為簡體;
- 去掉空白、零寬字元、組合附加符號,以及標點和符號,如“加 微 信”“加-微-信”“加.微.信”都視為“加微信”;
- 常見的形近字母換成拉丁字母,如西裡爾字母
а、о、р換成a、o、p。
規範化後與已有詞條相同的詞條視為重複,例如新增“加 V”後再新增“加v”為重複;遮蔽詞規範化後為 2 到 32 個字元,放行詞為 2 到 64 個字元。拼音、諧音、拆字和形近漢字不做變體匹配,也不支援正規表示式,常見的寫法請作為詞條加入,或使用第三方稽核。
放行詞:一次遮蔽詞的命中完全落在一個更長的放行詞之內時,這次命中不算。例如遮蔽“加微信”、放行“加微信公眾號”時,“關注我們的加微信公眾號”透過,“有需要請加微信”被拒絕。你的放行詞不能放行平臺規則拒絕的詞。
生效時間:詞庫和詞條的修改通常在 1 秒內生效,最遲 30 秒。修改後可以在控制檯的“試一試”中,或呼叫檢查文字立即驗證。
每個應用最多 20 個詞庫,每個詞庫最多 10000 個詞條,合計最多 50000 個詞條,一次最多新增或刪除 1000 個詞條。
第三方稽核
詞庫只能發現已知的寫法。需要識別圖片、語音、影片,或更準確地識別文字時,可以開啟第三方稽核:
- 你自己的稽核賬號:在控制檯新增你在第三方稽核服務商(阿里雲內容安全、騰訊雲天御、網易易盾)開通的賬號,為應用選擇這個賬號,再為需要的場景開啟。費用由你直接與服務商結算。賬號的配置見稽核賬號;
- 平臺提供的稽核:平臺也可以為應用開啟某些場景的第三方稽核,在控制檯的“平臺的設定”中檢視。平臺賬號的稽核次數計入應用的用量,見計量項;每天為每個應用稽核的次數有上限(預設 100000 次),超出後當天只按詞庫檢查。
同一個內容只稽核一次:你為這個場景開啟了第三方稽核的,用你的賬號;否則用平臺的賬號。一次稽核的結果同時按平臺規則和你的規則處理。
稽核方式:每個場景分別設定文字和媒體(圖片、語音、影片)的稽核方式:
| 方式 | 說明 | 可以使用的場景 |
|---|---|---|
| 事後 | 發出、儲存或上傳之後稽核,違規的撤回、清除或遮蔽 | 文字:除 chatroom_attribute、media_upload 外的全部場景;媒體:message、chatroom_message、media_upload,以及 user_profile、group_profile 的頭像 |
第三方稽核一律在發出、儲存之後進行:傳送和儲存時只按詞庫檢查,不等待服務商,服務商的快慢、限流和故障都不影響傳送。代價是違規內容在稽核完成之前短暫可見;需要「發不出去」的內容請加入詞庫。舊的方式「同步」已取消,按「事後」處理。
按類別處理:第三方稽核給出“建議攔截”“建議人工稽核”和類別。你可以按類別設定:建議攔截時拒絕(預設)或送審;建議人工稽核時送審(預設)或不處理。平臺強制處理的類別不受這項設定影響,由平臺規則處理。
節省費用:圖片、語音、影片按內容的摘要快取稽核結果,同一張圖片被轉發多次只稽核一次;已撤回、已過期的訊息不再稽核;服務端提交的內容預設不送你的第三方稽核(見服務端提交的內容);每個應用每分鐘最多 6000 個內容進入事後稽核,超出的只按詞庫檢查。
圖片地址:外部地址上的圖片由服務商按地址抓取。地址不是可以公開訪問的 http、https 地址(如內網地址、無法解析的域名)時不交給服務商:頭像直接拒絕,訊息中的圖片生成稽核記錄,由稽核人員判斷。建議把圖片上傳到本服務,見檔案概述。
人工稽核
以下內容生成稽核記錄,由你的稽核人員在控制檯處理(見稽核記錄),也可以由你的服務端呼叫稽核記錄的介面接入自己的稽核系統:
- 命中送審的詞庫,或第三方稽核建議人工稽核的內容;
- 事後稽核自動處置的內容,等待確認;
- 使用者舉報的內容。
同一條訊息、同一個使用者的資料、同一個檔案同時只有一條未處理的記錄,後來的命中和舉報都歸到這一條上。稽核人員可以:
- 確認違規:同時選擇處置,如撤回訊息、遮蔽檔案、清除資料、禁言或封禁作者,預設計入作者的違規;
- 無違規:結束記錄。自動處置過的記錄改為無違規時,刪除它引起的違規、解除它遮蔽的檔案;已撤回的訊息不能恢復,已執行的禁言和封禁不會自動解除;
- 轉交平臺:認為內容可能違法、需要平臺處理時轉交。
作出結論後 30 天內可以把“確認違規”改為“無違規”,用於處理使用者的申訴。超過 30 天沒有處理的記錄自動結束,之後仍可以補作結論。記錄結束 30 天后清空其中的內容,180 天后刪除。
違規記錄與自動處罰
以下情況計入使用者的違規:
- 他在客戶端提交的內容在傳送前、儲存前被拒絕;
- 他的內容在事後稽核中被自動處置;
- 稽核人員確認他的內容違規(可以選擇不計入,如賬號被盜用)。
你的服務端和控制檯提交的內容被拒絕時不計入任何使用者的違規。每次違規記下場景、類別、來源和按誰的規則(平臺或你的規則),平臺規則的違規同樣計入次數。違規記錄保留 180 天;刪除使用者時一併刪除。
自動處罰:在控制檯為應用設定最多 5 條規則,如“24 小時內違規 3 次,禁言單聊和群聊 1 小時”“7 天內違規 10 次,封禁 7 天”:
| 專案 | 取值 |
|---|---|
| 時間視窗 | 1 到 720 小時 |
| 違規次數 | 1 到 1000 次 |
| 統計的類別 | 全部類別,或指定的幾個類別 |
| 處罰 | 全域性禁言(選擇單聊、群聊、聊天室中的一個或多個場景),或封禁 |
| 時長 | 1 秒到 10 年,或永久 |
每次記下違規後,逐條統計時間視窗內的違規次數,達到次數、且這條規則在這個時間視窗內還沒有處罰過這個使用者時執行。處罰以你的應用的身份執行,與你呼叫全域性禁言、封禁使用者的效果相同:被禁言的使用者在客戶端傳送時收到 403 user_muted;被封禁的使用者全部裝置隨即下線。你可以隨時在控制檯或透過介面解除。預設沒有規則,不自動處罰;平臺不會自動處罰你的使用者。
例如設定“24 小時內違規 3 次,禁言單聊和群聊 1 小時”後,使用者第 3 次傳送被拒絕的訊息,之後在群裡發言時收到:
{
"error": {
"code": "user_muted",
"message": "你已被禁言",
"details": {
"expires_at": "2026-10-04T20:23:49.532Z",
"scope": "group"
},
"request_id": "OFQLWQXJWYXF2ZWQK6BU3S3CCW"
}
}在控制檯的“使用者違規”中,或呼叫查詢使用者的違規、清除使用者的違規,可以檢視使用者的違規記錄和最近的處罰,清除按你的規則記下的違規(平臺規則的違規只能由平臺清除)。清除違規不會解除已執行的處罰。
使用者舉報
使用者可以舉報一條訊息、一個使用者、一個群、一個聊天室或一條聊天室訊息。舉報進入你的稽核記錄,由稽核人員處理;再多人舉報也只提高處理的優先順序,不會自動處置。
- 只能舉報看得到的內容:訊息必須是舉報人現在能看到的(入群之前、離開群之後的群訊息,本人已刪除的訊息都不行),已撤回的訊息不能舉報;私有群只有成員能舉報,公開群任何人都可以舉報;聊天室不要求舉報人在其中,但聊天室訊息只能舉報聊天室儲存的最近訊息(24 小時內);不能舉報自己和自己的訊息。不滿足時返回
404 not_found,與物件不存在不作區分。 - 儲存證據:舉報時儲存被舉報的內容。之後訊息被撤回、資料被修改,稽核人員看到的仍是舉報時的內容。舉報使用者和群時可以附上最多 5 條訊息作為證據。
- 重複舉報:同一個人對同一個物件只算一次,再次舉報返回原來的那一次。一個物件被判定無違規後 7 天內的新舉報只記錄,不重新開啟。
- 舉報人看到的結果:只有“處理中”和“已處理”兩種狀態,不告訴舉報人被舉報的人受到了什麼處罰。
客戶端舉報:使用者在客戶端用 User Token 呼叫 POST /client/v1/reports 舉報,引數與代使用者舉報相同(沒有 reporter,舉報人就是本人);GET /client/v1/reports 查詢本人 90 天內的舉報。客戶端舉報按使用者限制頻率:每分鐘 5 次、每天 30 次。應用可以關閉客戶端舉報(執行策略 report_enabled,預設開啟),客戶端從執行配置得知是否顯示舉報入口,關閉後客戶端舉報返回 403 permission_denied,details.reason 為 report_disabled。SDK 釋出後由 SDK 封裝。
舉報原因
reason | 含義 | 記入的類別 |
|---|---|---|
ad | 廣告、騷擾 | ad |
fraud | 詐騙 | fraud |
porn | 色情低俗 | porn |
politics | 涉政 | politics |
terrorism | 暴恐 | terrorism |
abuse | 辱罵攻擊 | abuse |
illegal | 違法違禁 | illegal |
infringement | 侵權 | other |
minor | 涉及未成年人 | illegal |
other | 其他 | other |
原因為 fraud、politics、terrorism、minor 的舉報,以及舉報原因屬於平臺強制處理的類別的,稽核記錄的優先順序最高。
與回撥的關係
內容安全和回撥可以一起使用:
- 同步回撥:發訊息前回撥(包括聊天室訊息)、加好友前回撥、加群前回撥都排在內容安全的檢查之後。被內容安全拒絕的請求不會觸發回撥;被替換的內容,回撥收到的是替換後的內容;回撥改寫後的內容不再經過內容安全檢查。訊息的傳送前檢查和發訊息前回撥合計最多 3 秒,聊天室訊息合計最多 500 毫秒。
- 事件回撥:可以訂閱內容安全的事件,在你的服務端接收新的稽核記錄(
moderation.item_created)、稽核結論(moderation.item_decided)、使用者舉報(moderation.report_created)和違規(moderation.violation_recorded,帶這次觸發的自動處罰,可以據此通知或警告使用者)。事件中不包含被稽核的內容和命中的詞。平臺稽核的內容只在平臺確認違規時通知。
資料結構
類別
詞庫、第三方稽核的結果、舉報和違規都歸到以下類別。一條內容有多個類別時,按表中從上到下的順序取第一個作為主要類別。
| 類別 | 含義 |
|---|---|
politics | 涉政 |
terrorism | 暴恐 |
porn | 色情 |
fraud | 詐騙 |
contraband | 違禁品,如毒品、槍支、管制物品 |
gambling | 賭博 |
abuse | 辱罵、人身攻擊 |
vulgar | 低俗 |
ad | 廣告、導流(如留聯絡方式拉人到其他平臺) |
illegal | 其他違法內容 |
custom | 自定義 |
other | 其他 |
