如何在不更改代码的情况下保护易受引号字符攻击的应用程序?

How to secure applications that are vulnerable to quotation character without changing code?

我发现在我们的网络中,安全人员阻止了包含 <、>、"、' 及其编码等价字符的 GET 请求。这些是许多 Web 应用程序正常运行所必需的字符,即使在构建新应用程序时,我们必须考虑到这一限制性规则。我们必须进行不同类型的黑客攻击,才能使开箱即用的应用程序甚至新应用程序正常工作。当我讨论此事时,结果发现他们有很多旧应用程序手头有可以由这些字符触发的漏洞(SQL 注入,...)并且他们无法访问人员来解决这些问题,因此他们决定一起阻止这些请求。仍然如果没有其他办法解决这个问题,我很难相信。

我想知道其他企业如何在不设置这样的限制的情况下实现同样的目标,或者更确切地说: 我们如何才能以经济高效的方式保护那些旧的 Web 应用程序而不更改其源代码并阻止所有请求,即使对于没有这些漏洞的新应用程序也是如此?

您的网络安全团队采用的方法并不完全荒谬,但它的应用过于广泛。

例如,IIS 7(及更高版本)可以使用 URL Rewrite extension 将特定请求阻止规则应用于 特定站点(甚至特定域);它不需要 将此类规则应用于所有 网络流量。 IIS 6 可以使用第三方程序(例如 ISAPI Rewrite)达到类似的效果。

一种更明智的方法是在所有托管易受攻击的遗留 Web 应用程序的站点上设置限制性请求规则,同时允许您的现代 Web 应用程序正常接收不受阻止的请求。