最近,我们一直在讨论对来自受信任源(如 Active Directory)的输出数据进行编码的优点。我们有一个 Web 应用程序,它显示从 AD 查询的用户列表,并允许以各种方式对其进行管理。论据认为,如果来自 AD 的数据不是 Html 编码的,那么如果您有权访问域控制器,则可以注入脚本并对站点执行 XSS 样式攻击;例如,通过添加脚本作为 AD 用户的名字。
两种思想流派(1 用于不验证,2 用于验证)似乎是:
- 如果您可以访问 DC,则可以做的比将代码注入显示您已经访问的信息的站点要糟糕得多。您也可以直接查看信息。那么为什么要打扰呢?
- 如果您是域管理员,您可以制造这种攻击,从而创建一个后门,即使您离开公司也可以访问信息。
我认为手头的问题确实是一个更普遍的问题,除了防范恶意输入的常见做法之外,您是否需要防范(并因此编码)来自受信任来源的输出数据。