尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
sqlmap实战:自动化检测DVWA靶场SQL注入漏洞
实战演练利用sqlmap自动化检测DVWA的SQL注入漏洞搞安全的人应该都有印象自己刚接触Web渗透那会儿大部分时间都花在手工拼SQL语句上。单引号、注释符、order by、union select一套流程下来遇上一个参数还好说遇上POST登录表单、Cookie注入、搜索框好几个入口同时存在手工测到后面人都是懵的。后来团队里一个老哥甩给我一句话能用工具解决的事情别浪费时间手工磨。这句话改变了我的测试习惯也让我的效率直接翻了一倍。这篇文章要聊的就是sqlmap这个自动化检测工具配合DVWA这个专门用来练手的漏洞靶场如何把SQL注入检测从“手工点半天”变成“一条命令出结果”。如果你是刚入行、还在手工判断注入点的阶段或者已经在用sqlmap但只会跑最简单的命令这篇文章应该能帮你把工具用得更透。我不仅会逐步演示怎么在DVWA上跑通检测流程还会把工具背后那套检测逻辑讲清楚——只有理解了原理换一个真实站点你才不至于用错参数、看错结果。注意本文所有演示均在本地搭建的DVWA靶场环境中完成操作对象完全是自己在本地起的教学环境。在未授权情况下把这类工具用在实际站点上属于违法行为这点我先说清楚你自己把握好边界。1. 内容整体设计与思路拆解1.1 为什么选DVWA和sqlmap这对组合先说DVWA。这个靶场全称是Damn Vulnerable Web Application翻译过来就是“一个故意做得很脆弱的Web应用”。它存在的意义和“缺陷演示平台”的教学定位绑定得很死里面内置了SQL注入、XSS、文件包含、CSRF等各种经典漏洞每个漏洞还会区分低、中、高三个安全级别完美模拟同一个功能在不同防护强度下的表现。对于学习漏挖、学习工具使用来说没有比这更合适的训练场了。再来说sqlmap。它的名气大到你随便问一个做Web安全的百分之百知道这个工具。它是一款开源的自动化SQL注入检测与利用工具最初由社区开发者发起后来一直有人维护更新现在已经支持非常多的数据库类型和注入场景。检测原理简单概括就是你给它一个URL或请求数据包它会自动在这个目标上尝试各种注入技术比如布尔盲注、报错注入、联合查询注入、时间盲注、堆叠注入等测出漏洞后还能直接帮你跑库、跑表、跑数据。这两个东西放一起价值就在于“省事”。sqlmap把手工测试中重复、繁琐的步骤全部自动化了DVWA则提供了一个安全、合法的环境让你把这一整套流程反复练熟。等你在DVWA上把工具用顺手了再遇到真实项目中类似场景至少不会慌。1.2 整体检测思路我按自己的习惯把整个检测流程拆成这样几个阶段环境搭建把DVWA跑起来确保注入点可用。确认注入点明确哪个请求参数是真正参与SQL查询的。使用sqlmap发起检测观察工具输出确认漏洞存在。进一步利用让工具帮我们跑基础信息。安全级别切换对比不同防护等级下的检测差异。这套流程看着简单但每一步都有细节。比如第一步如果环境都起不来后面全是空谈第二步如果选错了请求参数sqlmap输出了“不存在注入”的结论你以为目标安全其实很可能是自己姿势错了。所以我不急着直接甩命令我们先一步步来。1.3 工具选型时有哪些可替代方案不一定非要用sqlmap业界还有不少同类工具比如开源的Burp Suite插件、一些Python写的专用注入检测脚本甚至你在命令行里用curl配合手工Payload也能完成检测。但是我个人在实际测试中很少绕开sqlmap原因是它已经积累了大量的指纹库和检测策略很多刁钻的注入场景它都能覆盖而且命令行参数设计得像一门小型DSL一旦你掌握了常用的几十个参数工作效率会非常高。狠话说在前面工具终究是替代手工的部分重复劳动不代表你可以完全不理解注入原理。你至少得知道什么是布尔盲注、什么是报错注入、什么是时间盲注否则sqlmap输出一堆Payload的时候你只能看热闹看不出门道。2. 核心细节解析与实操要点2.1 DVWA环境搭建的基础要求我自己的环境是在虚拟机里完成的一台装好的操作系统Linux虚拟机前置环境是LAMP或LNMP栈也就是Linux、Apache或Nginx、MySQL、PHP的组合。DVWA本身是PHP写的所以这个组合是官方推荐的跑法。需要注意几点PHP版本不要太老也不要太新。DVWA官方对PHP版本有要求太新的PHP可能跑不动老版本DVWA太老又可能缺少依赖扩展。MySQL要能正常启动DVWA安装时要往里面写入数据库配置。我把DVWA的源码放在Web根目录下的dvwa目录然后修改config目录下的配置文件填入本地数据库的用户名、密码这样才能在安装页正常执行初始化流程。如果你是第一次弄建议直接用系统包管理器安装PHP和MySQL。不要用那种一键集成的懒人包虽然方便但后面排查问题时你根本不知道环境里的PHP和数据库都是什么状态出了问题就是黑盒子。自己亲手搭一次哪怕多花半小时后续能省很多时间。DVWA启动后浏览器访问它的目录就能看到登录页面默认用户名密码都是admin。登录进去之后先设置一下安全级别这里面有个关键点安全级别设成lowSQL注入的实现方式最直接适合初体验。设成medium会加入一些简单的过滤和转义。设成high会引入更严谨的参数化查询注入通道被堵死。我在本文演示时先把安全级别调到low这也是官方推荐的教学入口。毕竟第一步是先看懂工具怎么跑而不是一上来就挑战高难度。2.2 SQL注入点在哪里找DVWA的SQL注入模块其实就是两个入口一个接收用户输入ID后端直接在SQL查询里拼接没有任何过滤这是最基础的注入点。用户提交的Cookie字段服务端会读取Cookie里的某个值拼入SQL语句这就引出了Cookie注入场景。这种设计很典型。现实中很多开发者只防了请求体里的参数忘了Cookie和Header这类客户端可控的东西也会进入数据库查询。DVWA把这个场景放出来就是提醒你测试别只盯着URL参数和POST表单。对于第一步我建议你先把注入点放在基础入口上在提交框里输入一个数字ID点击提交页面回显对应用户信息。这一步的意义是确认“这个参数的行为是存在SQL查询的”之后交给sqlmap就有了明确目标。2.3 sqlmap的核心参数先记住这几个sqlmap参数很多但一般情况下最常用的是这么几个-u指定目标URL。--cookie携带登录态或注入点所需的Cookie。--data指定POST请求要提交的数据体。-p指定要测试的参数。--batch自动选择默认选项用于批处理。--level和--risk控制检测深度。--dbs枚举数据库。-D指定数据库名。--tables枚举表。-T指定表名。--columns枚举列。-C指定列名。--dump提取数据。拿这些参数组合起来你就能从“测漏洞”一步步走到“拿数据”。中间还有一些辅助参数比如--threads可以开线程加速--dbms可以手动指定数据库类型避免工具误判。有个细节我经常看到新手踩坑带上Cookie之后工具在进行后续验证时会在每个请求里都携带这个Cookie如果你的目标会话在测试中途失效那跑出来的结果就不准了。所以实际操作时我会先在浏览器里完整登录一次把会话保持住再导出Cookie给工具用。2.4 为什么检测时经常要带Cookie这可能是一个超出新手认知的细节。DVWA里的SQL注入模块很多操作都需要登录后才能访问而登录状态是靠会话Cookie维持的。如果你直接拿一个未登录的URL丢给sqlmap大概率会得到一个302跳转或登录页的内容工具自然找不到注入点还会报错让你以为靶场有问题。所以正确流程是先用浏览器登录DVWA。打开浏览器开发者工具找到Cookie值。导出Cookie到文本文件或直接写成--cookie参数。这个做法不是DVWA的专利现实中测试带登录态的Web应用也基本是这套路。养成这个习惯你的工具测试成功率会大幅提升。3. 实操过程与核心环节实现3.1 第一步启动DVWA并确认基础环境我假设你已经能打开DVWA的登录页面了。输入默认账号密码进入之后先到安全级别设置里把它调为low保存设置。然后到SQL Injection模块输入1点提交。正常情况下页面会返回一个用户ID为1的记录显示FirstName和Surname等信息。这个现象告诉我两层意思应用确实存在数据库交互。输入参数1被用于某个数据库查询。到这一步手工体验已经结束接下来交给sqlmap。3.2 第二步写一个保存Cookie的文件我用的是命令行方式跑sqlmap所以先准备Cookie文件方便反复调用。假设我的会话Cookie内容是这样idxxx; PHPSESSIDyyy; securitylow这里有两个点需要说明PHPSESSID是PHP应用维持会话的字段相当于你的登录凭证。securitylow是DVWA自己设置的Cookie它决定了当前测试安全级别。这个值是每次你切换安全级别时重新写入的。把Cookie内容存到文件里比如cookies.txt放到工作目录下然后接着往下走。3.3 第三步用sqlmap检测基础注入点我从最基础的GET型注入开始完整命令长这样sqlmap -u http://127.0.0.1/dvwa/vulnerabilities/sqli/?id1SubmitSubmit --cookieidxxx; PHPSESSIDyyy; securitylow --batch-u指定了DVWA中SQL注入模块的地址注意我保留了id1和SubmitSubmit这两个参数。--cookie带上登录态--batch让工具自动选择默认选项别在交互式提问那里卡住。跑起来后sqlmap会先发一堆探针请求判断目标是否存在WAF然后根据响应差异区分不同的注入类型。正常情况下你会在输出里看到类似这样的结论参数id存在基于布尔的盲注。参数id存在报错注入。参数id可能存在联合查询注入。这就是工具在做“自动化碰撞”的过程。它会针对同一个参数依次构造不同类型的Payload观察响应页面在内容、长度、响应时间上的差别再根据这些差别反推注入类型。看到这类输出后说明工具已确定漏洞存在而且给出了可用的注入类型。基础检测完成。3.4 第四步跑一遍数据库明细验证工具的深入能力检测到注入点之后我们可以继续让工具帮我们拿数据。先从数据库名开始sqlmap -u http://127.0.0.1/dvwa/vulnerabilities/sqli/?id1SubmitSubmit --cookieidxxx; PHPSESSIDyyy; securitylow --batch --dbs这个命令会追加--dbs参数工具会在检测成功后自动拼接SQL语句去查询information_schema里的数据库列表。输出结果一般会列出information_schema、mysql、dvwa等几个库名其中一个就是DVWA自己的业务库。确认库名后再向下看表sqlmap -u http://127.0.0.1/dvwa/vulnerabilities/sqli/?id1SubmitSubmit --cookieidxxx; PHPSESSIDyyy; securitylow --batch -D dvwa --tables这里的-D指定了要操作的数据库--tables要求枚举表。DVWA库下常见几张表users、guestbook等。users表里通常存着用户账号和密码哈希。再细一层直接看表结构sqlmap -u http://127.0.0.1/dvwa/vulnerabilities/sqli/?id1SubmitSubmit --cookieidxxx; PHPSESSIDyyy; securitylow --batch -D dvwa -T users --columns-C参数可以指定列名或者直接什么都不加工具会把整张表的数据拉出来sqlmap -u http://127.0.0.1/dvwa/vulnerabilities/sqli/?id1SubmitSubmit --cookieidxxx; PHPSESSIDyyy; securitylow --batch -D dvwa -T users --dump这个命令跑完之后工具会把users表的内容列出来密码字段通常显示为哈希值。你可以把这个哈希丢给本地哈希破解工具做离线跑但只要不涉及真实站点基本就到这一步为止了教学目的已经达成。3.5 第五步换个入口演示Cookie注入DVWA的SQL Injection (Cookie)模块是同一个靶场里第二个注入位置。这个模块没有传统的输入框而是在Cookie里放入id值。浏览器开发者工具里改一下Cookie把id设为1刷新页面如果页面显示了用户记录说明Cookie参数进入了SQL查询。针对这种场景sqlmap同样可以直接打sqlmap -u http://127.0.0.1/dvwa/vulnerabilities/sqli-cookie/ --cookieid1; PHPSESSIDyyy; securitylow --batch --dbs注意这里我通过--cookie把id1作为Cookie参数传了进去sqlmap会自动识别到Cookie中的id字段并把它作为一个可测试的参数。整个检测思路和GET型一模一样只是入口变了。这个操作的价值在于它让你意识到注入点不一定都长在URL上Cookie、Header都能成为注入载体。3.6 第六步演示POST型注入DVWA里其实还有别的模块也涉及请求体数据比如登录后的某些功能模块。如果遇到POST表单sqlmap要增加--data参数sqlmap -u http://127.0.0.1/dvwa/xxx/yyy.php --datausernameadminpassword123456submitSubmit --cookiePHPSESSIDyyy; securitylow --batch--data会把请求方式自动切换为POST工具会对其中的username、password等参数分别进行注入测试。这个操作要把请求体和实际抓包内容对应上别拿一个不存在的字段名去测不然工具会报“找不到可测试的参数”。4. 常见问题与排查技巧实录4.1 登录状态失效导致检测不到注入我遇到过很多次命令没写错参数也传了但sqlmap就是报告“目标不可达”或“没有注入”。大概率是会话过期。墙内的网站在保持会话这块比较灵活但DVWA这类PHP应用PHP默认会话是有过期时间的。如果测试拖得太久PHPSESSID就不认了。排查办法很简单重新登录一次刷新Cookie文件再跑一次命令。如果你用的是--batch工具会在请求失败时报错不会帮你自动回登录页。4.2 输出出现“unable to connect to the target”这个报错一般是网络层面的问题。先检查目标地址在浏览器里能不能直接访问再检查是不是加了代理。sqlmap默认会尊重系统代理设置如果你的终端环境配置了代理那么工具发请求也会走代理代理不通就是连接失败。解决办法是在命令里取消代理sqlmap --proxy http://127.0.0.1:8080 -u http://127.0.0.1/dvwa/...或者确认目标确实在本地就直接加--force-ssl之类不适用于HTTP所以最稳的还是检查环境变量里的代理配置。4.3 检测结果出现大量重试和超时这通常发生在时间盲注的检测阶段。时间盲注的核心逻辑是工具在Payload里加入延时函数如果响应时间明显变长就说明注入条件成立。但如果网络本身就有延迟延迟时间不稳定工具就会反复重试拖慢整体速度。解决方案有三个降低--time-sec参数值比如设成3让工具每次等待的时间短一点。使用--flush-session清除缓存重新检测。直接用--techniqueBEUST指定检测技术只保留需要的类型跳过不必要的检测路径。不过DVWA的低级别环境一般布尔盲注和报错注入都能一把过很少需要纯时间盲注。4.4 数据库被识别错误sqlmap会自动指纹数据库类型但它也有翻车的时候。如果你明确知道当前环境是MySQL但工具识别出来的却是别的数据库可以直接指定sqlmap --dbmsmysql -u http://127.0.0.1/dvwa/...这个参数能强制工具按指定数据库的语法去构造Payload避免误判导致检测失败。4.5 更多排查思路我整理成了一张速查表问题现象排查链路常见解法提示目标没有注入先确认参数是否真的进入SQL查询换一个确定存在注入的入口重测命令卡在交互询问没有加--batch加上--batch自动选择检测速度非常慢同时测了太多参数用-p只测指定参数出现大量超时网络延迟波动调低--time-sec继续测检测时返回登录页会话过期重新登录并刷新CookieCookie参数没被测试没有用-p指定Cookie参数使用-p id进行定向测试输出Buffer太大无法看清没有调整日志级别加上-v 3看详细信息这张表是我平时工作时会贴在终端旁边的遇到问题先过一遍能省不少时间。5. 结合场景的提效技巧和安全边界5.1 level和risk参数用好了覆盖范围更大默认情况下sqlmap只会做浅层检测。比如--level1时它主要测URL参数和基本的POST参数当你把level调成3工具会开始测User-Agent、Referer、Host等头部字段。再看--risk它决定是否会使用更危险的Payload比如可能导致数据变更的语句。我的建议是日常测试用--level3 --risk2兼顾速度和覆盖面。只有在靶场和实验环境才用--level5 --risk3。在生产环境或未授权测试中绝对不要随便开最高级别尤其是--risk3这类操作可能真的会把数据搞乱。这个边界是我实际工作中最常提醒周围同事的。5.2 会话保持和请求定制有些目标网站有CSRF Token机制也就是说每次请求的表单里都会带一个动态变化的Token。sqlmap直接测这种目标时Payload还没发出去Token校验就先把你拦了。解决办法是用sqlmap的--csrf-token-url和--csrf-token参数抓取并自动更新Token但这个配置要仔细阅读工具的帮助文档。DVWA的低安全级别没有这个机制所以我演示时没有涉及。如果你后面测试中安全级别更高的靶场这个场景大概率会出现。5.3 只盯着漏洞输出还不够要能看懂Payloadsqlmap给了太多便利反而容易让新手忽略底层原理。我在团队带新人的时候会要求他们打开--v 3或-v 6模式的输出把工具构造的Payload全部打印出来然后逐个解释为什么Payload里要有单引号闭合为什么注释符要写成多个写法为什么有些Payload会把查询条件改成永真式或永假式为什么时间盲注的Payload里带着sleep延时只有把这些都理解了你才算真正会用sqlmap。否则你换个目标、换一种防护工具跑不通时你就只能干瞪眼。6. 从入门到进阶我还想多说几句6.1 不要只停留在low级别DVWA最有价值的地方在于可以把同一个模块的安全级别从low一路调到high。我建议你至少要走一遍中高级别的测试流程看看sqlmap在面对参数化查询时如何表现。高级别通常意味着后端使用了参数化查询或严格的过滤函数sqlmap很多时候会直接报告“无法注入”这是正常现象说明防护有效。中级别的表现很有意思它可能引入了一些不完整的过滤手段比如只过滤了空格、只过滤了部分关键字。这种情况下sqlmap会自动生成一些绕过Payload你需要观察它到底是怎么绕的。这个环节是提升实战水平的关键也是跳过高级别环境就学不来的。6.2 结合Burp Suite会更好用我在真实项目中很少单纯依赖命令行工具通常是这样做的先用浏览器访问目标通过Burp Suite代理抓包。在Burp Suite里确认请求结构修改参数后观察响应差异。把抓到的请求包保存成文本文件。使用sqlmap的-r参数直接读取请求包进行检测。保存请求包的方式很简单Burp Suite里右键请求选择复制为curl命令或直接保存该请求的原始数据。sqlmap用-r接文件路径工具可以直接解析文件里的URL、Header、Cookie、请求体等信息非常省事。sqlmap -r request.txt --batch这个习惯可以避免你在命令行里手敲长URL和复杂Cookie的麻烦尤其当目标请求里有很多头字段时用-r反而最稳。6.3 工具版本要常更新sqlmap的更新频率其实挺高的因为数据库指纹、WAF绕过策略和Payload集都在不断演进。如果你用的版本太老可能遇到新数据库类型无法识别、新防护手段绕过不掉的尴尬情况。不同发行版系统里的工具源版本未必是最新的建议直接用官方Git仓库拉取源码运行。git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git cd sqlmap python sqlmap.py --version看到版本号是最新提交状态后再使用能避免很多奇怪的问题。7. 实验完成之后值得复盘的事项7.1 复盘检测数据每次跑完一轮测试我会把sqlmap的输出日志存下来。注意它会在目标目录下生成session文件这样下次再对同一个目标测试时工具能复用之前的检测结果避免重复探测。这个特性是通过--session参数控制的默认它自动创建。如果你不确定上一次测试状态也可以--flush-session清掉重新来。日志文件留档的意义在于事后分析。有时候你当时看不出问题的点隔几天回头再看会发现工具其实已经明确提示了某个参数存在异常只是你当时注意力全放在“是否注入”这个结论上了忽略了中间过程。7.2 记录不同安全级别的差异我强烈建议你建一个表格把DVWA在low、medium、high三个级别下sqlmap的检测结果记录下来。包括是否检测到注入。检测出了哪些注入类型。使用了哪些Payload。工具的检测耗时。是否触发WAF或报错。这份记录是你学习路上的宝贵材料。以后你面试或做项目时能直接说出“我在SQL注入自动化检测这个方向做过系列实验”比空口说“我知道sqlmap”有说服力得多。7.3 别忘了自己手动验证一次工具输出“存在注入”之后我建议你手动用Burp Suite或其他抓包工具复制一两条Payload自己发一下请求亲眼看看响应变化。比如工具检测到布尔盲注时你会发现把条件改成永真式和永假式后页面内容长度确实不同。自己亲手验证之后你才算真正吃透了检测流程。我在很多次具体的操作中得到一个感受工具是帮你省时间的不是帮你替代思考的。遇上复杂目标时工具跑不通是常有的事那时候手工经验反而能帮你快速定位问题出在什么地方。sqlmap用得好等于你多了一个高效的队友但最终做决策的还是你本人。希望这篇实战演职能帮你把队友的能力充分挖掘出来往后遇到SQL注入检测任务至少能少走很多弯路。
RELATED

相关推荐

AI Agent沙箱:生产级意图执行隔离与安全运行时架构

AI Agent沙箱:生产级意图执行隔离与安全运行时架构

1. 什么是“AI Agent 沙箱”:一个被严重低估的工程基础设施 “AI Agent 沙箱”这个词最近在技术社区里冒得特别快,但很多人一听到就下意识联想到“测试环境”“虚拟机”或者“浏览器插件里的隔离区”,其实这完全跑偏了。它既不是给AI模型做压…

📅 2026/10/22 11:40:50
Arthas实战:从CPU飙高到秒定位线上Java问题,十分钟救火指南

Arthas实战:从CPU飙高到秒定位线上Java问题,十分钟救火指南

先说结论:Arthas 这东西,我一开始是拒绝的。命令行工具嘛,命令又多,参数又长,光看文档就够劝退的。直到有次线上应用突然 CPU 飙到 99%,接口大面积超时,流量还在源源不断进来——按老办法先重启…

📅 2026/10/22 11:40:50
机械生学C语言入门:从开发环境到变量输入输出

机械生学C语言入门:从开发环境到变量输入输出

机械专业教室里的第一堂C语言课,通常伴随着同一个问题:我是学机械的,为什么要学编程?问这个问题的同学往往会在学期末发现,自己敲过的每一行代码,最后都会以某种方式回到机床旁边。数控系统要用代码控制&am…

📅 2026/10/22 11:40:50
MORE NEWS

更多资讯

📰

多线程:Thread类基本用法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Spark-X2.5-4B-INT8工具调用实战:用SGLang spark25解析器构建Agent工作流完整教程

【免费下载链接】Spark-X2.5-4B-INT8 项目地址: https://ai.gitcode.com/SparkLLM/Spark-X2.5-4B-INT8 点击查看 免费下载 Spark-X2.5-4B-INT8 是一款 4B 级别的开源小模型(INT8 量化版),主打工具调用(Tool Calling&a…

📰

5分钟给PS3游戏打上中文:RPCS3汉化补丁系统实战走查

5分钟给PS3游戏打上中文:RPCS3汉化补丁系统实战走查 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 RPCS3 内置了一套补丁系统(Patch Manager),配合…

📰

MMLU 86.65%实测!GLM-5.3-CYBERSECURITY-FP8智能保留度基准测试:去除拒绝会掉智商吗?

大模型网络安全红蓝对抗模型安全 【免费下载链接】GLM-5.3-CYBERSECURITY-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/dealignai/GLM-5.3-CYBERSECURITY-FP8 点击查看 免费下载 🔍 GLM-5.3-CYBERSECURITY-FP8 是 dealignai 基于 753B 参数 MoE 大…

📰

XL-DocBench快速入门教程:一条命令如何在5分钟内跑通首次基准评测

【免费下载链接】XL-DocBench 项目地址: https://ai.gitcode.com/hf_mirrors/microsoft/XL-DocBench 点击查看 免费下载 XL-DocBench 是一个面向超长文档理解(Extra-Long Document Understanding)的基准评测数据集,包含 292 份真…

📰

uv venv 实战:从零到隔离环境 30 秒,Python 版本自动搞定

uv venv 实战:从零到隔离环境 30 秒,Python 版本自动搞定 【免费下载链接】uv An extremely fast Python package and project manager, written in Rust. 项目地址: https://gitcode.com/GitHub_Trending/uv/uv 一个项目钉死在 3.11,…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬