我正在尝试获取我的网络服务应用程序的服务器详细信息
<tr>
<td style="text-align: right">Remote Host Name:</td>
<td><%= request.getRemoteHost() + ":" + request.getRemotePort()%></td>
</tr>
我最近运行了 veracode,但我遇到了 getRemoteHost()
有关如何防止出现此问题的建议?
最佳答案
这可能意味着如果有一个名为 < script > ... 的主机,您的函数只是天真地回显它。
您应该通过仅允许主机名中的有效字符来过滤输出。或者在回显之前简单地对其进行 html 编码。
作为一般规则,您必须验证来自不受信任来源的所有输入,例如用户输入。
环境变量和 http header 通常被视为安全的,但任意更改它们相对容易。
问问自己主机名信息来自哪里。如果它是您的 DNS 服务器,则攻击者不太可能用此类伪造的主机名污染其缓存。如果信息来自 http header ,那就很容易了。
关于html - 网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25171395/