.NET Framework 4.7.2登录功能凭证明文传输VAPT漏洞修复求助
问题修复方案
1. 检查表单Action属性
确保登录表单的action属性明确指向HTTPS协议的URL,避免使用HTTP或未指定协议的相对路径。示例:
<form method="post" action="https://yourdomain.com/Account/Login"> <!-- 用户名、密码输入控件 --> </form>
若使用相对路径,必须保证站点已强制所有请求跳转至HTTPS,否则首次提交可能以明文HTTP发送凭证。
2. 配置IIS强制HTTPS跳转
通过URL重写规则将所有HTTP请求重定向到HTTPS,可直接在Web.config中添加规则:
<system.webServer> <rewrite> <rules> <rule name="HTTP to HTTPS Redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer>
也可在IIS管理器的「URL重写」模块中可视化配置该规则。
3. 启用.NET框架的HTTPS强制约束
在Web.config的<system.web>节点下添加配置,强制Cookie和表单认证仅通过HTTPS传输:
<system.web> <httpCookies requireSSL="true" /> <authentication mode="Forms"> <forms requireSSL="true" /> </authentication> </system.web>
4. 启用HSTS(HTTP严格传输安全)
添加自定义HTTP头,强制浏览器后续仅通过HTTPS访问站点,避免用户手动输入HTTP导致的明文请求:
<system.webServer> <httpProtocol> <customHeaders> <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains" /> </customHeaders> </httpProtocol> </system.webServer>
关键排查步骤
- 清除浏览器缓存后重新测试,避免旧HTTP缓存干扰
- 检查Chrome开发者工具Network标签中登录请求的「Protocol」列,确认是
h2或TLS 1.2+/HTTP/1.1 - 若使用反向代理/负载均衡,需确保代理正确传递HTTPS请求头,避免后端接收到HTTP请求
内容的提问来源于stack exchange,提问作者Shablu Rizvi
相关产品推荐
相关产品推荐

