403 - 禁止:访问被拒绝 ASP.Net MVC

问题描述 投票:0回答:2

我已经部署了一个网站。当我从内部网络(我公司的网络)访问时,它运行良好。但是,当我尝试在公共互联网上访问该网站时,该网站显示 UI 时出现错误。问题的根本原因是网站无法获取资源文件(css)。 浏览器显示错误消息:“无法加载资源:服务器响应状态为 403(ModSecurity 操作)”。 因此,我尝试访问捆绑的资源文件时出错,浏览器显示错误消息“403 - 禁止:访问被拒绝。 您无权使用您提供的凭据查看此目录或页面。” 我认为网络或防火墙有问题。 您能给我解决这个问题的解决方案吗? enter image description here enter image description here

asp.net-mvc
2个回答
3
投票

请将此密钥添加到您的 web.config 中。如果没有的话。

<add key="webpages:Enabled" value="true" />

如果仍然有同样的问题,请告诉我。

您应该输入此密钥以允许请求访问

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" />

0
投票

当迁移到另一台具有 ModSecurity(Plesk 下的 Web 应用程序防火墙)的服务器时,我遇到了同样的问题。从服务器上的浏览器打开应用程序时运行良好。该网站有一些外部聊天应用程序,我怀疑它们添加了一些 cookie。

您可以将 ModSecurity(Web 应用程序防火墙模式)更改为“仅检测”来临时解决该问题。您还可以检查ModSecurity日志文件以了解请求被拒绝的原因并禁用特定规则。 在我的服务器上,活动规则集是

OWASP(免费)在 IIS (ModSecurity 2.9) 上运行

这是 Plesk for Windows 下指定的内容;

要找出无法完成网站 HTTP 请求的原因:

单击下面的 ModSecurity 日志文件链接并打开审核日志 一个新的浏览器窗口。
  1. 使用搜索(在大多数网络浏览器中为 Ctrl+F)查找遇到问题的网站(域名)的事件。例如, your_domain.tld。浏览器将突出显示 HOST 等条目: your_domain.tld。
  2. 在突出显示的条目上方的三行中,找到类似 --eece5138-B-- 的字符串。连字符之间的八个符号(在我们的示例中为 eece5138)是 HTTP 请求触发的事件的 ID。
  3. 进一步搜索具有相同事件 ID 的其他条目。查找事件 ID 后面带有字母 H 的条目(在我们的示例中, eece5138-H--)。此条目包含 ID 和描述 检查 HTTP 请求时触发安全规则。安全 规则 ID 是引号中的整数,前缀 id 为 方括号(例如,[id "340003"])。
  4. 使用子字符串在事件中查找安全规则 ID(例如,[id "3)。
  5. 在下面的“安全规则”部分中关闭具有此 ID 的安全规则:将安全规则 ID(仅限数字)输入到 安全规则 ID 字段并单击确定。
© www.soinside.com 2019 - 2024. All rights reserved.