AI 模型的行爲可能出乎意料。本文檔介紹如何控制智能體的操作權限、設置安全護欄,以及引導 LLM 實現預期行爲。
理解模型行爲¶
LLM 基於概率分佈生成文本,而不是從數據庫中檢索事實或執行確定性邏輯。對於相同的輸入,它們可能生成不同的輸出,產生看似合理卻錯誤的事實或代碼,也可能受到精心構造的提示詞 (提示詞注入) 的影響。
不能指望 LLM 始終做出安全決策。相反,需要結合兩種方法:對智能體可執行操作設定硬性邊界的安全控制,以及引導 LLM 行爲、促成更好結果的引導機制。
如需深入瞭解 LLM 的工作原理,請參閱AI 模型如何工作。
兩種安全方案¶
Cursor 提供兩種互補的方法來管理 AI 智能體行爲:
安全控制 (確定性執行) :無論 LLM 提出何種建議,都能阻止危險操作的硬性邊界。其中包括終端命令限制、拒絕操作的強制執行鉤子、批准工作流和沙箱機制。安全控制是防範有害智能體操作的首要防線。
LLM 引導 (非確定性指導) :通過塑造 LLM 的上下文和可執行操作,引導其做出更恰當行爲的機制。其中包括爲提示詞添加指令的規則、提供可複用工作流的命令,以及豐富智能體知識的集成。引導可提升智能體質量,但不能保證阻止有害操作。
請結合使用這兩種方法。安全控制提供安全保障;引導則能減少智能體一開始嘗試有問題操作的頻率。
安全控制¶
這些確定性控制會嚴格限制智能體的行爲,無論 LLM 提出何種建議,都會生效。
終端命令限制¶
默認情況下,Cursor 執行任何終端命令前都需要你的批准。這有助於防範破壞性命令 (如刪除文件、刪除數據庫) 、可能暴露敏感數據的命令,以及可能產生意外副作用的命令。
當智能體要運行命令時,你會看到一個顯示完整命令的提示詞。你可以批准並運行、拒絕,或在運行前修改該命令。
自動批准的風險¶
您可以爲終端命令啓用自動批准,但請了解相關風險。智能體可能在您不知情的情況下運行破壞性命令;命令會在您評審前執行;缺陷或提示詞注入可能導致非預期操作。
運行模式配置¶
企業版團隊可以在團隊儀表盤中配置運行模式策略。在 Cursor 3.6 及更高版本中,最終用戶可在 Auto-review 模式 (默認值) 、允許列表和運行全部模式之間選擇。Auto-review 模式會運行允許列表中的調用,儘可能將 shell 命令置於沙箱中執行,並將其餘調用交由 LLM 分類器處理;該分類器會根據安全性以及調用與用戶意圖的匹配程度決定允許還是阻止。您可以創建無需批准即可執行的命令允許列表,例如 npm install、pip install、cargo build 或 make test。
允許列表僅爲盡力而爲的機制,並非安全邊界。惡意智能體或提示詞注入可能會繞過它。請始終將允許列表與鉤子等其他安全控制結合使用。
強制執行鉤子¶
鉤子可讓您在智能體循環的關鍵節點運行自定義邏輯。
- 提交提示詞前:在將提示詞發送給 LLM 前掃描其中的敏感數據。阻止提交包含 API 密鑰或憑據、個人身份信息 (PII) 或專有信息的提示詞。
- 讀取文件前:在智能體讀取文件前掃描文件。對包含機密信息的配置文件、數據庫或日誌中的 PII,以及專有算法進行脫敏或阻止訪問。
- 代碼生成後:在將生成的代碼寫入磁盤前進行掃描。檢查安全漏洞 (SQL 注入、XSS) 、可能引發知識產權問題的許可代碼,以及代碼中的 API 密鑰和憑據。
- 執行終端命令前:阻止危險命令,或將其納入批准工作流。例如,阻止所有
git push命令,要求任何sudo命令都需批准,或阻止數據庫DROP語句。
示例:阻止 git 命令¶
此鉤子會攔截 shell 命令,禁止直接使用 git,並引導用戶改用 GitHub CLI:
#!/bin/bash
input=$(cat)
command=$(echo "$input" | jq -r '.command')
if [[ "$command" =~ git[[:space:]] ]]; then
cat << EOF
{
"permission": "deny",
"userMessage": "Git command blocked. Please use gh tool instead.",
"agentMessage": "Use 'gh' commands instead of raw git."
}
EOF
fi
示例:遮蓋機密信息¶
此鉤子會掃描文件內容,查找 GitHub API 密鑰;如發現則阻止訪問:
#!/bin/bash
input=$(cat)
content=$(echo "$input" | jq -r '.content')
if echo "$content" | grep -qE 'gh[ps]_[A-Za-z0-9]{36}'; then
cat << EOF
{
"permission": "deny"
}
EOF
exit 3
fi
有關完整文檔和更多示例,請參閱 Hooks。
保護敏感文件¶
並非倉庫中的所有文件都應向 AI 開放訪問權限。配置文件、機密信息和敏感數據都需要保護。
.cursorignore¶
.cursorignore 文件的作用類似於 .gitignore,但用於控制 Cursor 可以訪問哪些內容。匹配 .cursorignore 中模式的文件不會用於:
- 智能體讀取文件
- 上下文選擇
.cursorignore 並非安全邊界。它只是一個便捷功能,用於將文件排除在 AI 處理之外,但:
- 用戶仍可手動讀取被忽略的文件
- 智能體可能會設法訪問被忽略的內容
- 它不會阻止文件訪問,只會將文件排除在索引之外
如需真正的安全保障,請使用文件系統權限或加密敏感數據。
有關詳細語法,請參閱忽略文件。
.cursor 目錄保護¶
倉庫中的 .cursor 目錄包含項目專屬的設置、規則和緩存文件。企業版團隊可以禁止智能體修改此目錄。
啓用後,智能體無法:
- 修改
.cursor/中的文件 - 刪除
.cursor/目錄 - 更改 Cursor 規則或設置文件
用戶仍可手動編輯這些文件,但智能體需要獲得批准。
可在團隊儀表盤的“.cursor 目錄保護”中進行配置 (僅限企業版) 。
瀏覽器源站控制¶
企業版團隊可以限制智能體使用瀏覽器工具時可訪問的網站。設置已批准域名的允許列表,智能體嘗試訪問其他源站時將被阻止。
在團隊儀表盤的“瀏覽器控制”中配置 (僅限企業版) 。
與 DLP 工具集成¶
許多企業已部署數據丟失防護 (DLP) 工具,用於掃描敏感數據。您可以通過三種方式將 Cursor 與 DLP 工具集成。
端點 DLP 代理¶
大多數端點 DLP 軟件都能檢查 Cursor 的網絡流量。請配置 DLP,監控發往 *.cursor.sh 域名的流量,掃描出站請求中的敏感內容模式,並在違反策略時阻止或發出警報。
網絡 DLP 可能會影響性能。有關代理相關注意事項,請參閱網絡配置。
基於鉤子的 DLP¶
使用 Cursor 的鉤子功能實現自定義 DLP 邏輯:
提交提示詞前:
在將提示詞發送給 LLM 前,掃描其中的敏感模式:
#!/bin/bash
input=$(cat)
prompt=$(echo "$input" | jq -r '.prompt')
# 檢查是否包含 API 密鑰
if echo "$prompt" | grep -qE 'api[_-]?key.*[A-Za-z0-9]{32}'; then
cat << EOF
{
"continue": false,
"userMessage": "Prompt contains what looks like an API key. Remove it and try again."
}
EOF
exit 1
fi
# 未發現敏感數據則放行
cat << EOF
{
"continue": true
}
EOF
代碼生成後:
在將生成的代碼寫入磁盤前,先進行掃描:
#!/bin/bash
input=$(cat)
file_path=$(echo "$input" | jq -r '.file_path')
edits=$(echo "$input" | jq -r '.edits[].new_string')
# 檢查是否存在硬編碼的憑證
if echo "$edits" | grep -qE 'password.*=.*["\047][^"\047]+["\047]'; then
# 發送到你的 DLP API 進行分析
curl -X POST "https://dlp.yourcompany.com/scan" \
-H "Content-Type: application/json" \
-d "{\"content\":\"$edits\",\"file\":\"$file_path\"}"
# 檢查 API 響應並做出相應處理
fi
第三方 DLP 集成¶
通過鉤子調用您現有 DLP 供應商的 API:
#!/bin/bash
input=$(cat)
content=$(echo "$input" | jq -r '.content')
# 發送到 DLP API
response=$(curl -s -X POST "https://dlp-api.company.com/analyze" \
-H "Authorization: Bearer $DLP_API_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"text\":\"$content\"}")
# 解析響應
is_allowed=$(echo "$response" | jq -r '.allowed')
if [ "$is_allowed" = "true" ]; then
cat << EOF
{
"permission": "allow"
}
EOF
else
violation=$(echo "$response" | jq -r '.violation_type')
cat << EOF
{
"permission": "deny",
"userMessage": "Content blocked by DLP policy: $violation"
}
EOF
fi
這種方法可讓您集中管理所有開發工具的 DLP 策略。
批准工作流¶
您可以將 Cursor 配置爲:每次智能體執行操作時都要求批准。用戶可以將智能體設置爲在讀取文件、編輯文件、運行終端命令或發起網絡請求前始終詢問。
不過,這種做法會顯著拖慢開發節奏。智能體需要執行多個操作才能完成任務,而每個操作都要求批准會讓工作流變得繁瑣。大多數團隊會選擇使用鉤子自動阻止危險操作。
模型提供商安全性¶
所有模型提供商 (OpenAI、Anthropic、Google、SpaceXAI) 都實施了用於過濾有害內容的安全系統。這些系統會拒絕要求提供有害信息的提示詞、拒絕生成危險代碼,並對輸出進行安全過濾。
Cursor 與提供商合作,確保模型在面向用戶部署前符合安全標準。提供商會持續評測模型的安全性問題。但這些系統並非安全邊界,可能被繞過或欺騙。務必通過鉤子和訪問策略實施自己的控制措施。
沙箱注意事項¶
默認情況下,Cursor 智能體在您的本地計算機上運行。它們可以讀取您有權讀取的文件、寫入您有權寫入的文件、執行您有權執行的命令,以及訪問您有權訪問的網絡資源。
智能體與您的用戶賬戶之間沒有安全邊界。如果您的賬戶可以刪除文件,智能體也可以刪除文件 (默認需經批准) 。
沙箱選項¶
如果需要更強的隔離,可通過 Cloud Agents 在獨立 VM 中運行 Cursor,使用文件系統權限限制 Cursor 進程的訪問範圍,或在對生產系統訪問受限的專用開發機器上運行 Cursor。
對大多數企業而言,內置的批准要求和鉤子已能提供足夠的控制。
文件系統權限¶
爲進一步增強防護,請使用文件系統權限保護敏感文件:
限制對包含機密信息的文件的訪問:
# 讓機密信息僅對特定用戶可讀
chmod 600 .env
chown app-user:app-user .env
# 或者使用受限訪問的獨立目錄
chmod 700 /etc/app/secrets
隔離敏感倉庫:
將高度敏感的代碼存放在訪問受限的獨立倉庫中。不要在運行 Cursor 的計算機上克隆這些倉庫。
加密文件系統:
對於高度敏感的數據,請使用需要顯式掛載的加密文件系統。不要將這些文件系統掛載到 Cursor 可訪問的目錄中。
LLM 引導¶
安全控制會在 LLM 提出有害操作後加以阻止。引導機制則從一開始就引導 LLM 提出更好的建議。這類機制不具有確定性,能改善結果,但不能保證完全避免問題。
規則¶
規則會在每次請求前將指令添加到 LLM 的上下文窗口中。可使用規則設定編碼標準、強制執行架構模式、設置安全要求,或定義項目專屬約定。
規則分爲三個範圍:
用戶規則:適用於特定用戶的所有項目。可用於代碼風格或常用庫等個人偏好。
項目規則:適用於項目中的所有協作者。可用於命名約定或框架使用方式等項目專屬標準。
團隊規則:適用於組織內的所有項目。可用於安全要求或合規規則等公司範圍的標準。
LLM 在生成響應時會看到所有適用的規則。它會嘗試遵循這些規則,但規則只是建議,並非保證。對於必須遵守的要求,請將規則與強制執行鉤子結合使用。
有關配置和示例,請參閱規則。
命令和工作流¶
命令將可複用的提示詞封裝起來,智能體可通過 /test 或 /deploy 等斜槓命令調用。命令有助於統一團隊內的常見工作流。
工作流:創建多步驟流程,引導智能體完成複雜任務。例如,/security-review 命令可指示智能體掃描 SQL 注入風險、檢查暴露的機密信息、驗證輸入清理措施,並生成安全報告。
提示詞庫:爲常見任務構建經過驗證的提示詞集合。這有助於減少智能體行爲的差異,並沉澱組織知識。
命令可限定在團隊、項目或用戶範圍內。團隊管理員可以創建面向整個組織的命令,供所有開發者使用。
有關配置和示例,請參閱 命令。
通過 MCP 豐富上下文¶
模型上下文協議 (MCP) 服務器可讓智能體訪問外部數據源。使用 MCP 可引入公司文檔、查詢內部 API、訪問知識庫,或集成開發工具。
MCP 可爲智能體的上下文補充原本無法獲取的信息。例如,MCP 可以提供對 API 規範的訪問權限,使智能體能夠生成正確調用內部服務的代碼。
MCP 適用於團隊或用戶。與鉤子不同,MCP 不會強制執行策略,而是提供信息,幫助智能體做出更好的決策。
有關配置和示例,請參閱 MCP 集成。
企業版高級安全控制¶
聯繫我們的團隊,瞭解全組織範圍的強制執行機制和安全策略。