网页中与脚本相关的HTML标记的中和不当(基本XSS)

时间:2014-08-06 22:36:21

标签: html jsp veracode

我正在尝试获取我的Web服务应用程序的服务器详细信息

<tr>
 <td style="text-align: right">Remote Host Name:</td>
 <td><%= request.getRemoteHost() + ":" + request.getRemotePort()%></td>
</tr>

我最近运行了veracode,我遇到了问题getRemoteHost()有关如何预防它的任何建议吗?

2 个答案:

答案 0 :(得分:1)

这可能意味着如果有一个名为&lt;的主机脚本&gt; ...,你的功能只是天真地回应它。

您应该只允许主机名中的有效字符来过滤输出。或者只是在回显之前对html进行编码。

作为一般规则,您必须验证来自非不受信任来源的所有输入,例如用户输入。

通常将环境变量和http标头视为安全,但任意更改它们相对容易。

问问自己主机名信息的来源。如果它是您的DNS服务器,则不太可能,攻击者可能会使用此类伪造的主机名污染其缓存。如果信息来自http标头,那将非常容易。

答案 1 :(得分:1)

您可以用来解决: 例如<c:out value=request.getRemoteHost() />