加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网 (https://www.0372zz.com/)- 容器安全、云日志、云数据迁移、行业智能、数据仓库!
当前位置: 首页 > 建站 > 正文

IIS权限总出错?5个Windows安全盲区我踩过

发布时间:2026-11-06 14:36:23 所属栏目:建站 来源:DaWei
导读:  我原以为IIS权限就是把文件夹右键→属性→安全→加个IIS_IUSRS就完事了,结果去年5月份那会儿,部署到客户环境直接403——连favicon.ico都404。李薇在隔壁工位外放《甄嬛传》第三集,声音卡在“臣妾做不到啊”那句反复

  我原以为IIS权限就是把文件夹右键→属性→安全→加个IIS_IUSRS就完事了,结果去年5月份那会儿,部署到客户环境直接403——连favicon.ico都404。李薇在隔壁工位外放《甄嬛传》第三集,声音卡在“臣妾做不到啊”那句反复循环,我盯着那个灰色的色板里说不清是#E0E0E0还是#E2E2E2的灰,手抖着又点了第九遍“应用”。


  切图文件夹里的命名乱七八糟:icon_user_active@2x.png、user-icon-active-2x.png、icon-user-2x-active.png……前端小张昨天问我:“你这切图命名规范是不是没同步?”我说“有啊”,他指着自己本地的文件夹说:“你发我那个zip里,有个叫‘btn_primary_big_蓝底白字_v3_FINAL_删掉这个’的文件夹。”我没接话,因为我真记得不清是第几版了。


  第一个盲区:AppPoolIdentity默认用户根本没权限读你的物理路径。我加了IIS_IUSRS,但没给ApplicationPoolIdentity那个虚拟账户开权限——它压根不是Windows组,它是个活的账号,只是不显示在用户列表里。我对着服务器管理器点到手麻,直到看见“高级”按钮下面藏着个“查找现在对象”的小箭头,输进去ApplicationPoolIdentity,才弹出那个半透明的、带锁图标的账号。窗台上的绿萝死了半盆,枯叶还挂在枝上,没人动它。


  第二个盲区:Web.config被当成静态文件拦了。IIS默认把.config后缀全禁了,哪怕你把它放在子目录里,只要路径经过web.config,统统404。我们上线前测得好好的,结果客户那边开了请求筛选,我把web.config改名叫app.config再重命名回来试了三遍,最后是陈哥端着那只干了的马克杯路过,顺手在MIME类型里加了一行text/xml,说“你先跑通再说”。他没说完,我就知道他指的是去年10月那版还原度被产品否掉的稿子——首屏组件对齐差2px,空态提示语多写了三个字,整套UI组件库重做了两轮,最后用的是第一版的栅格逻辑。


  第三个盲区:NTFS权限继承被手动断掉了。我们项目打包脚本里有个copy /Y命令,把build产物拷过去时顺手把所有ACL清了。谁干的?记不清。但我知道那天下午服务器盘符D:\\inetpub\\wwwroot\\project\\下所有子文件夹的“继承自父项”前面的小勾没了。我站在李薇身后看她刷短视频,手指戳屏幕太用力,指甲盖泛白,她笑出声来:“笑死,这个男主演得比我们测试环境还假。”我转身去查,才发现最底层的dist目录权限全是红叉。


  第四个盲区:匿名身份验证开着,但实际用的是Windows身份验证——客户内网策略强制要求NTLM,而我们开发机一直走匿名,所以本地测不出问题。我重启了五次IIS,iisreset /restart敲到键盘冒热气,最后一分钟是小张递来一包薄荷糖,剥糖纸时说:“你试试关掉‘启用匿名身份验证’,只留Windows身份验证?”我照做,页面出来了,首页加载了17秒,但出来了。桌上那只干了的马克杯,杯底结了浅褐色的茶渍圈,像没擦干净的PSD图层蒙版。


  第五个盲区:应用程序池.NET CLR版本和编译目标不一致。我们代码是net6.0,池里选了.NET 4.0经典模式。错误日志里连句有用的话都没有,全是“HTTP 错误 500.19 - Internal Server Error”,配置错误那行还高亮标红——标红的是web.config里一行,但它根本不该出现在net6项目里。我原以为这是前端传参导致的,结果是陈哥边调试边念叨:“你看看你们编译输出目录bin里有没有runtimeconfig.json。”我翻了,没有。他说:“那就不是跑起来了,是压根没起来。”显示器有点色偏,蓝色总泛一点紫,切图的时候我调过三次校色,每次调完都觉得不对,后来索性关了校色软件。


  优胜劣汰……这话听着像HR在晨会讲的。但我真觉得是——你被权限堵死八次,第九次才会记住ApplicationPoolIdentity要单独授权;你被.config拦住三回,下次打包前就会先扫一遍所有.config后缀;你被NTFS继承断掉坑过两次,再写自动化脚本一定加上icacls /inheritance:e。李薇刚关掉视频,耳机线垂下来,甩在键盘F键上。她扭头问我:“那个间距,到底是8还是12?设计稿改了三版,你说到底按哪个来?”我没答。数位笔的笔尖刚换过,写字有点打滑,我在纸上画了个歪斜的方块,底下写“待确认”,然后划掉。


文章配图,仅供参考

  其实我现在也不敢说全懂。上周又撞上一次,客户服务器开了Windows Defender应用控制(WDAC),把我们一个DLL当可疑模块拦了,报错连IIS日志都不进,全堆在系统事件查看器里。我截图发群里,陈哥回:“别碰,等他们IT自己解。”小张接着发了个“????”,然后转头继续改他的响应式栅格,说:“你猜这次产品经理会不会又说‘这个间距看起来不够呼吸感’?”


  所以我现在遇到403/404/500,第一反应不是查web.config,是开资源监视器,盯进程树里w3wp.exe用的是哪个身份;第二步是切进PowerShell,敲get-acl,不看界面,只信那一串Get-Acl返回的AccessToString;第三步……第三步一般是倒杯水。那只马克杯还在桌上,我还没洗。

(编辑:草根网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!