MCP-安全(代码实例)

MCP的常见安全问题与安全测试项 MCP协议在提升AI系统智能化的同时,也引入了复杂的安全风险。通过制定详尽的安全测试框架,开发者可以识别和缓解这些风险,确保MCP在智能系统中的安全应用。 阅读详情

安全最佳实践

安全性对于 MCP 实施至关重要,尤其是在企业环境中。务必确保工具和数据免受未经授权的访问、数据泄露和其他安全威胁。

介绍

在本课中,我们将探讨 MCP 实施的安全最佳实践。我们将涵盖身份验证和授权、数据保护、安全工具执行以及数据隐私法规合规性。

学习目标

学完本课后,您将能够:

  • 为 MCP 服务器实施安全的身份验证和授权机制。
  • 使用加密和安全存储保护敏感数据。
  • 通过适当的访问控制确保工具的安全执行。
  • 应用数据保护和隐私合规的最佳实践。

身份验证和授权

身份验证和授权对于确保 MCP 服务器的安全至关重要。身份验证回答的是“您是谁?”,而授权回答的是“您能做什么?”。

让我们看一下如何使用 .NET 和 Java 在 MCP 服务器中实现安全身份验证和授权的示例。

.NET 身份集成

ASP .NET Core Identity 提供了一个强大的框架来管理用户身份验证和授权。我们可以将其与 MCP 服务器集成,以保护对工具和资源的访问。

在将 ASP.NET Core Identity 与 MCP 服务器集成时,我们需要了解一些核心概念:

  • 身份配置:使用用户角色和声明设置 ASP.NET Core 身份。声明是关于用户的信息,例如其角色或权限,例如“管理员”或“用户”。
  • JWT 身份验证:使用 JSON Web 令牌 (JWT) 实现安全的 API 访问。JWT 是一种以 JSON 对象形式在各方之间安全传输信息的标准,由于其经过数字签名,因此可以被验证和信任。
  • 授权策略:根据用户角色定义策略,控制对特定工具的访问。MCP 使用授权策略,根据用户的角色和声明来确定哪些用户可以访问哪些工具。
public class SecureMcpStartup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Add ASP.NET Core Identity
        services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();
        
        // Configure JWT authentication
        services.AddAuthentication(options =>
        {
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })
        .AddJwtBearer(options =>
        {
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuer = true,
                ValidateAudience = true,
                ValidateLifetime = true,
                ValidateIssuerSigningKey = true,
                ValidIssuer = Configuration["Jwt:Issuer"],
                ValidAudience = Configuration["Jwt:Audience"],
                IssuerSigningKey = new SymmetricSecurityKey(
                    Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
            };
        });
        
        // Add authorization policies
        services.AddAuthorization(options =>
        {
            options.AddPolicy("CanUseAdminTools", policy =>
                policy.RequireRole("Admin"));
                
            options.AddPolicy("CanUseBasicTools", policy =>
                policy.RequireAuthenticatedUser());
        });
        
        // Configure MCP server with security
        services.AddMcpServer(options =>
        {
            options.ServerName = "Secure MCP Server";
            options.ServerVersion = "1.0.0";
            options.RequireAuthentication = true;
        });
        
        // Register tools with authorization requirements
        services.AddMcpTool<BasicTool>(options => 
            options.RequirePolicy("CanUseBasicTools"));
            
        services.AddMcpTool<AdminTool>(options => 
            options.RequirePolicy("CanUseAdminTools"));
    }
    
    public void Configure(IApplicationBuilder app)
    {
        // Use authentication and authorization
        app.UseAuthentication();
        app.UseAuthorization();
        
        // Use MCP server middleware
        app.UseMcpServer();
    }
}

在上面的代码中,我们有:

  • 配置 ASP.NET Core Identity 用于用户管理。
  • 设置 JWT 身份验证以实现安全的 API 访问。我们指定了令牌验证参数,包括颁发者、受众和签名密钥。
  • 定义授权策略,根据用户角色控制对工具的访问。例如,“CanUseAdminTools”策略要求用户具有“Admin”角色,而“CanUseBasic”策略则要求用户进行身份验证。
  • 注册的 MCP 工具具有特定的授权要求,确保只有具有适当角色的用户才能访问它们。

Java Spring 安全集成

对于 Java,我们将使用 Spring Security 实现 MCP 服务器的安全身份验证和授权。Spring Security 提供了一个全面的安全框架,可与 Spring 应用程序无缝集成。

这里的核心概念是:

  • Spring 安全配置:设置身份验证和授权的安全配置。
  • OAuth2 资源服务器:使用 OAuth2 安全访问 MCP 工具。OAuth2 是一个授权框架,允许第三方服务交换访问令牌以实现安全的 API 访问。
  • 安全拦截器:实施安全拦截器来强制执行工具执行的访问控制。
  • 基于角色的访问控制:使用角色来控制对特定工具和资源的访问。
  • 安全注释:使用注释来保护方法和端点。
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .authorizeRequests()
                .antMatchers("/mcp/discovery").permitAll() // Allow tool discovery
                .antMatchers("/mcp/tools/**").hasAnyRole("USER", "ADMIN") // Require authentication for tools
                .antMatchers("/mcp/admin/**").hasRole("ADMIN") // Admin-only endpoints
                .anyRequest().authenticated()
            .and()
            .oauth2ResourceServer().jwt();
    }
    
    @Bean
    public McpSecurityInterceptor mcpSecurityInterceptor() {
        return new McpSecurityInterceptor();
    }
}

// MCP Security Interceptor for tool authorization
public class McpSecurityInterceptor implements ToolExecutionInterceptor {
    @Autowired
    private JwtDecoder jwtDecoder;
    
    @Override
    public void beforeToolExecution(ToolRequest request, Authentication authentication) {
        String toolName = request.getToolName();
        
        // Check if user has permissions for this tool
        if (toolName.startsWith("admin") && !authentication.getAuthorities().contains("ROLE_ADMIN")) {
            throw new AccessDeniedException("You don't have permission to use this tool");
        }
        
        // Additional security checks based on tool or parameters
        if ("sensitiveDataAccess".equals(toolName)) {
            validateDataAccessPermissions(request, authentication);
        }
    }
    
    private void validateDataAccessPermissions(ToolRequest request, Authentication auth) {
        // Implementation to check fine-grained data access permissions
    }
}

在上面的代码中,我们有:

  • 配置 Spring Security 来保护 MCP 端点,允许公众访问工具发现,同时要求对工具执行进行身份验证。
  • 使用 OAuth2 作为资源服务器来处理对 MCP 工具的安全访问。
  • 实施安全拦截器来强制执行工具执行的访问控制,在允许访问特定工具之前检查用户角色和权限。
  • 定义基于角色的访问控制,以根据用户角色限制对管理工具和敏感数据的访问。

数据保护和隐私

数据保护对于确保敏感信息的安全处理至关重要。这包括保护个人身份信息 (PII)、财务数据和其他敏感信息免遭未经授权的访问和泄露。

Python 数据保护示例

让我们看一个示例,了解如何使用加密和 PII 检测在 Python 中实现数据保护。

from mcp_server import McpServer
from mcp_tools import Tool, ToolRequest, ToolResponse
from cryptography.fernet import Fernet
import os
import json
from functools import wraps

# PII Detector - identifies and protects sensitive information
class PiiDetector:
    def __init__(self):
        # Load patterns for different types of PII
        with open("pii_patterns.json", "r") as f:
            self.patterns = json.load(f)
    
    def scan_text(self, text):
        """Scans text for PII and returns detected PII types"""
        detected_pii = []
        # Implementation to detect PII using regex or ML models
        return detected_pii
    
    def scan_parameters(self, parameters):
        """Scans request parameters for PII"""
        detected_pii = []
        for key, value in parameters.items():
            if isinstance(value, str):
                pii_in_value = self.scan_text(value)
                if pii_in_value:
                    detected_pii.append((key, pii_in_value))
        return detected_pii

# Encryption Service for protecting sensitive data
class EncryptionService:
    def __init__(self, key_path=None):
        if key_path and os.path.exists(key_path):
            with open(key_path, "rb") as key_file:
                self.key = key_file.read()
        else:
            self.key = Fernet.generate_key()
            if key_path:
                with open(key_path, "wb") as key_file:
                    key_file.write(self.key)
        
        self.cipher = Fernet(self.key)
    
    def encrypt(self, data):
        """Encrypt data"""
        if isinstance(data, str):
            return self.cipher.encrypt(data.encode()).decode()
        else:
            return self.cipher.encrypt(json.dumps(data).encode()).decode()
    
    def decrypt(self, encrypted_data):
        """Decrypt data"""
        if encrypted_data is None:
            return None
        
        decrypted = self.cipher.decrypt(encrypted_data.encode())
        try:
            return json.loads(decrypted)
        except:
            return decrypted.decode()

# Security decorator for tools
def secure_tool(requires_encryption=False, log_access=True):
    def decorator(cls):
        original_execute = cls.execute_async if hasattr(cls, 'execute_async') else cls.execute
        
        @wraps(original_execute)
        async def secure_execute(self, request):
            # Check for PII in request
            pii_detector = PiiDetector()
            pii_found = pii_detector.scan_parameters(request.parameters)
            
            # Log access if required
            if log_access:
                tool_name = self.get_name()
                user_id = request.context.get("user_id", "anonymous")
                log_entry = {
                    "timestamp": datetime.now().isoformat(),
                    "tool": tool_name,
                    "user": user_id,
                    "contains_pii": bool(pii_found),
                    "parameters": {k: "***" for k in request.parameters.keys()}  # Don't log actual values
                }
                logging.info(f"Tool access: {json.dumps(log_entry)}")
            
            # Handle detected PII
            if pii_found:
                # Either encrypt sensitive data or reject the request
                if requires_encryption:
                    encryption_service = EncryptionService("keys/tool_key.key")
                    for param_name, pii_types in pii_found:
                        # Encrypt the sensitive parameter
                        request.parameters[param_name] = encryption_service.encrypt(
                            request.parameters[param_name]
                        )
                else:
                    # If encryption not available but PII found, you might reject the request
                    raise ToolExecutionException(
                        "Request contains sensitive data that cannot be processed securely"
                    )
            
            # Execute the original method
            return await original_execute(self, request)
        
        # Replace the execute method
        if hasattr(cls, 'execute_async'):
            cls.execute_async = secure_execute
        else:
            cls.execute = secure_execute
        return cls
    
    return decorator

# Example of a secure tool with the decorator
@secure_tool(requires_encryption=True, log_access=True)
class SecureCustomerDataTool(Tool):
    def get_name(self):
        return "customerData"
    
    def get_description(self):
        return "Accesses customer data securely"
    
    def get_schema(self):
        # Schema definition
        return {}
    
    async def execute_async(self, request):
        # Implementation would access customer data securely
        # Since we used the decorator, PII is already detected and encrypted
        return ToolResponse(result={"status": "success"})

在上面的代码中,我们有:

  • 实现了一个PiiDetector类来扫描文本和参数以获取个人身份信息(PII)。
  • 创建一个EncryptionService类来使用该库处理敏感数据的加密和解密cryptography。
  • 定义一个secure_tool装饰器,包装工具执行以检查 PII、记录访问并在需要时加密敏感数据。
  • 将secure_tool装饰器应用于示例工具(SecureCustomerDataTool),以确保它安全地处理敏感数据。
如何给自研MCP加上安全验证 摘要: Spring AI框架整合MCP服务(如高德地图)为开发者提供了强大的功能扩展能力。本文介绍了对接高德地图MCP服务的配置方法,包括Key申请、SSE端点设置及Java代码实现。通过HttpClientSseClientTransport构建客户端,支持带权限校验的URL自动解析(如拆分baseUri与sseEndpoint)。此外,探讨了Spring AI基于OAuth2的认证方案,需引入spring-boot-starter-oauth2依赖。示例代码兼容多种配置方式,简化了外部MCP服务的集成 阅读详情

相关推荐

MCP 安全困境与Agent安全框架的应对之道

模型上下文协议(MCP)作为 LLM 与工具交互的一项重要标准,被赋予了 “AI 领域的 USB - C 接口” 的厚望,旨在为 AI 模型与外部工具之间建立起安全、双向的连接,让 AI 能够无缝对接各类数据源、文件系统、开发工具以及 Web 浏览器等外部系统,极大地拓展 AI 的应用能力。然而,随着 MCP 的广泛应用,其安全问题逐渐浮出水面,引发了业界的广泛关注。与此同时,代理安全框架的出现为解决 MCP 的安全困境带来了新的曙光,本文将深入探讨 MCP 面临的安全挑战以及代理安全框架的应对策略。

llm_way的博客 1877

2025 MCP核心宝典?最新案例实操全揭秘,不看亏大了!

MCP(模型上下文协议)是一种标准化的AI交互框架,通过统一接口解决AI应用与外部工具/数据源的集成难题。文章详细介绍了MCP的三层架构(宿主、客户端、服务器)和三大核心能力(工具、资源、提示),并提供了两个本地化实践案例:SQLite数据库操作和代理式RAG(检索增强生成)系统。后者结合了向量数据库和网络搜索功能,展示了MCP在AI应用开发中的实际价值。文章还附带了大模型学习路线和资源获取方式。

2401_84495872的博客 916

火山引擎 MCP 安全架构与实践

本文旨在阐述火山引擎在模型上下文协议(Model Context Protocol, MCP)全生命周期中的安全保障实践。文中首先介绍了 MCP 的核心概念、技术原理及生态发展现状,随后通过一个交互案例详细剖析了其工作流程。

volcenginetod的博客 1653

MCP协议,.Net 使用示例

这个示例展示了如何创建一个聊天应用,将 MCP 工具与 Microsoft Semantic Kernel 集成,使用户能够通过自然语言与 AI 交互,而 AI 能够使用 MCP 工具来完成任务。这个示例展示了如何创建一个聊天应用,将 MCP 工具与 OpenAI 的 GPT 模型集成,使用户能够通过自然语言与 GPT 交互,而 GPT 能够使用 MCP 工具来完成任务。这个示例展示了如何列出可用的 MCP 工具,并调用不同类型的工具,包括带参数和不带参数的工具。

许泽宇的技术分享 1353

spring-ai MCP的简单实例

其实也可以理解为大模型的一个扩展点,和spring bpp/bfpp类似,让大模型与外部服务交互,更好的辅助回答。一个简单的天气服务,工程启动后可以看到如下注册了工具。客户端请求和log如下。

master-dragon的专栏 997

Docker MCP 目录和工具包简介:使用 MCP 为 AI 代理提供支持的简单安全方法

Docker推出MCP Catalog和Toolkit测试版,旨在简化AI代理开发中模型上下文协议(MCP)工具的使用。该解决方案解决了MCP工具面临的三大挑战:发现难、安装复杂和安全隐患。MCP Catalog提供100多个精选容器化MCP服务器,而Toolkit则简化了安装、凭证管理和访问控制。通过与Stripe、Elastic等知名企业合作,Docker为开发者提供了安全、可扩展的MCP生态系统,支持与主流MCP客户端一键连接。未来还将扩展企业级功能,使团队能在Docker Hub上构建和共享MCP工

Willin Wang 的全栈升级指南 2043

【MCP 实战3】从零开始 - 简单示例

本文介绍了如何创建一个基础的MCP服务器"Hello World"示例。主要内容包括:1)使用FastMCP框架创建服务器实例,实现打招呼和时间查询两个工具函数;2)配置项目依赖和运行脚本;3)启动HTTP模式服务器的操作步骤;4)与Cursor客户端集成的方法。通过这个简单示例,开发者可以快速掌握MCP服务器的基本创建流程和工具实现方式,为后续开发更复杂的MCP服务打下基础。

showyoui的博客 704

MCP保姆级详解和实战案例(附完整代码)

Function Call是大模型基于意图识别触发预设函数的机制,其本质是模型与外部工具的“点对点”交互。平台依赖性强:对于不同大模型(如GPT、Claude),Function Call的实现差异显著,开发者需要为每个大模型编写适配的相关代码。扩展性不足:新增工具需调整模型接口或重新训练,难以支持复杂多轮任务。从模型调用工具的流程来看,MCP 跟 Function Call 是调用链上的两个环节。

人不风流枉少年 2656

本地文件操作 MCP (多通道处理) 使用案例

文件操作MCP(Multi-Channel Processing)是一个高效处理本地文件的框架,支持并行处理、批量操作、监控和异常处理等功能。通过多通道架构,MCP显著提升了大文件或大量文件处理的效率。安装简单,配置灵活,支持多种高级功能如文件加密、并行搜索、差异比较与合并等。MCP还提供了性能优化建议和最佳实践,如调整通道数量、合理设置缓冲区大小、使用内存映射等,以确保在不同场景下获得最佳性能。MCP适用于需要高效处理文件的应用场景,通过合理配置和优化,可以显著提升文件操作的效率和可靠性。

weixin_47233946的博客 2028

详解 MCP 核心架构原理

MCP 协议是一个基于主机-客户端-服务器架构的通信协议,旨在为大模型应用提供安全、可扩展的外部能力集成方案。核心架构采用主机-客户端-服务器三层架构主机负责协调和管理多个客户端实例客户端与服务器建立 1:1 的独立连接服务器提供特定资源和能力的外部程序协议设计原则服务器构建简单,专注于特定能力服务器高度可组合,支持模块化扩展服务器隔离设计,不读取完整对话功能可逐步添加,保持向后兼容关键组件基础协议:JSON-RPC 通信、连接生命周期、传输机制功能特性:资源、提示词、工具、采样等。

AI天才研究院 919

深度解析 MCP 客户端集成:全方位接入 MCP 服务实战指南

随着人工智能、大数据、物联网等前沿技术在各行业的深度渗透与融合,应用之间的高效通信、协作以及智能交互能力,已成为衡量现代应用竞争力的关键指标。MCP(Model Context Protocol)协议正是顺应这一发展趋势应运而生,它如同一座坚固且智能的桥梁,紧密连接客户端应用与功能强大的 MCP 服务器,使应用能够便捷地调用服务器上的丰富资源与工具,从而实现更加智能化、个性化以及高效化的功能体验。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 544

MCP 安全代码实例:用 TaoToken 统一 Key 跑通鉴权与越权校验

用Python为本地MCP Server写鉴权中间件,通过HMAC签名校验调用者身份、按tool_policies拦截越权与敏感参数,出口统一走TaoToken API通道。含可复制配置与五条测试用例,跑通合法调用与越权拒绝。详见 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_42588555的博客 3

LangChain学习及应用(超详细)

Model I/O 部分是与语言模型进行交互的核心组件,包括输入提示(Prompt Template)、调用模型(Model)、输出解析(Output Parser)。简单来说,就是输入、处理、输出这三个步骤。LLM 因其具有海量参数,需要花费相当的物力与时间成本进行预训练和微调,同时商用 LLM 还需要进行各种安全测试与风险评估等。因此 LLM 会存在知识滞后的问题。在专有领域,LLM 无法学习到所有的专业知识细节,因此在面向专业领域知识的提问时,无法给出可靠准确的回答。

weixin_39764056的博客 4257

MCP Agent安全测评:JADE恶意Server实例集解析与防御实践

模型上下文协议(MCP)作为连接大模型与外部工具的标准协议,其核心机制是让模型动态发现并调用工具,但这一过程缺乏强制安全校验,导致模型对工具返回内容“默认信任”。恶意MCP Server可通过结果投毒、描述误导、授权套取等方式,诱导Agent执行删除文件、提升权限、外传数据等危险操作,形成从“忠实助手”到“勒索帮凶”的完整攻击链。复旦白泽团队发布的JADE恶意Server实例集合,正是针对这一攻击面设计的标准化测评工具。它通过多样化的恶意样本,帮助开发者在隔离环境中测试Agent的敏感工具触发率、越权操作率

weixin_29327525的博客 257

线性代数知识点整理

线性代数基础知识点摘要整理

cuguanren的博客 3万+

Time-Interleaved Analog-to-Digital Converters

  这篇论文提供了时间交错模数转换器的教程回顾。在解释了偏置、增益、定时和其他不匹配对变换器性能的影响后,给出了目前解决不匹配问题的方法。论文最后总结了时间交错模数转换器的现状。 1.简介   时间交错模数转换器(ADC)将多个子ADC组合成一个ADC系统,可以实现比单独的子ADC[1]更快的采样速率。历史上,时间交错adc的主要缺点是需要紧密匹配子adc[2]的特性。近年来,由于应用需要非常宽带信号的数字化、功率高效子adc的可用性以及由深亚微米互补金属氧化物硅(CMOS)技术实现的微调技术,使得时间交错

weixin_44537056的博客 6732

什么是MCP?MCP服务端代码实例初体验

MCP(模型上下文协议)是一种标准化AI模型与外部工具交互的通信协议,定义了工具、资源和提示三种核心元素。它支持多种通信模式:STDIO用于本地高效通信,SSE实现单向实时推送,Streamable HTTP提供双向流式交互。通过Python的fastmcp库可快速搭建MCP服务,使用装饰器定义功能模块,并集成到Cherry Studio等开发工具中调用。该协议简化了AI系统与外部服务的集成,适用于不同场景的智能交互需求。

zone_的博客 894

数字IC后端时序违例修复:setup/hold冲突与时钟树优化实战

时序收敛是数字IC后端设计中最关键的环节之一,直接影响芯片能否在目标频率下稳定工作。建立时间与保持时间的本质是寄存器对数据稳定性的物理约束,而实际工程中,setup违例和hold违例往往此消彼长,冲突的根源在于数据路径与时钟路径的延迟匹配。时钟树综合(CTS)作为连接逻辑与物理的关键步骤,其skew、insertion delay和transition的优化直接决定了时序修复的成败。通过useful skew技术、合理的单元替换和路径结构调整,可以系统性地解决setup/hold冲突,实现时序收敛。本文结合

weixin_28292761的博客 222

MCP安全问题研究

大模型与模型上下文协议(MCP)的结合扩展了AI能力边界,但也引入了API漏洞、提示注入等新型安全威胁。本文系统分析了MCP协议原理及安全挑战,包括43%的MCP工具存在命令注入风险、供应链攻击等10类已知威胁。通过对比APIKey、OAuth2.0和国密算法等认证方案,提出多层次防护策略:部署安全网关实施动态权限控制,采用容器隔离与沙箱技术,结合零信任架构和持续监控。研究建议优先采用OAuth2.1协议,集成国密算法增强自主可控性,并建立严格的安全开发生命周期管理,为大模型+MCP环境构建系统性安全防护框

tkdsy007的博客 1512

RK3568平台(camera篇)点亮imx586摄像头

mipi摄像头硬件确认点:1.供电:5V,2.8V,1.2V,1.8V,reset脚(硬拉3.3,上电的时候从低到高),pwron脚外接3.3V。2,时钟:MCLKOUT是24兆时钟。3.4组差分mipi线。mipi的data线的波形为方波。

weixin_49303682的博客 7258

数据分析:蛋白质组的GO term的富集分析详解

在获取差异表达蛋白质的数据之后,依据蛋白质与基因的对应映射关系,开展GO(Gene Ontology)term的富集分析。通过这一分析流程,能够精准地识别出不同实验组中过表达基因所关联的显著富集的GO term通路。这些富集的GO term通路为后续的生物学研究提供了关键线索,有助于深入探究基因功能、揭示潜在的生物学机制,从而推动生物学发现的进程。

专注生信领域 1368

【MCP探索实践】MCP-Shield:守护MCP服务器安全的利器

MCP-Shield是一款由Riseandignite团队开发的开源安全扫描工具,专门用于检测Model Context Protocol(MCP)服务器中的潜在安全风险,如工具异常行为、数据传输异常以及跨域权限问题等。它通过扫描服务器配置文件,帮助用户发现并修复可能的安全问题,从而有效提升MCP服务器的安全性。

寻道AI,探索AI无限可能! 1140

Codex入门00-初识神器(小白入门:到底什么是Codex CLI,和ChatGPT写代码有什么不同?)

OpenAI Codex CLI 是 OpenAI 于2025年推出的终端原生AI编程代理,不是在网页里聊天写代码,而是直接在你的终端里自主读代码、改文件、跑命令。它拥有三种安全模式、/goal 持久化任务、云端沙箱执行等独特能力。本文从零介绍 Codex CLI 的核心概念、与 ChatGPT 写代码的本质区别、典型使用场景和费用说明,让你全面认识这个改变开发方式的神器。

yueyeguzhuo的专栏 302

MCP协议安全指南|零基础也能~

MCP协议在提供AI工具调用标准化接口的同时,也面临诸多安全挑战。其设计初衷侧重功能实现而忽视安全性,导致信息不对称、上下文隔离不足、权限验证缺失等隐患。本文系统分析了MCP的安全风险,结合代码审查、环境隔离、网络策略等实践提升安全性,并详解本地、远程及Serverless三种部署模式的应用场景与配置要点,强调安全与便利的平衡。未来需推动协议层深度安全集成与生态治理,确保MCP生态健康发展。

lenyan~的博客 1678

使用 PLS 回归进行近红外光谱的异常值检测

在光谱数据中,并非每个数据点都是有效的,因此,在构建模型时找到与大部分数据不符合的数据点是一种必要的操作。这些数据我们称之为。在这篇文章中,我们将使用PLS回归进行红外光谱数据的异常值检测。

qq_44204759的博客 1423

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

为了检测MCP安全风险,我们开发了一个AI Agent

建议将AI-Infra-Guard集成到MCP上架前的安全性评估流程中,对开发者提交的MCP代码进行自动化安全检测,并在市场前端向用户展示MCP的安全检测结果或认证标识,对于检测出存在严重安全风险(如数据窃取)的MCP,不予上架或进行风险提示,帮助用户直观的选择安全可靠的MCP服务,提升MCP市场的安全口碑。朱雀构建的智能体能主动连接本地已安装的MCP服务获取工具信息,并与待检测MCP进行相似度分析,后续还会考虑检索MCP市场上已发布的MCP服务的工具信息进行更全面的对比分析,以识别可能的恶意仿冒。

Tencent_SRC的博客 3433

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: MCP-安全(entra)
下一篇: MCP-实时搜索
goodfornothing-s
博客等级 码龄8年 105粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值