CodeQL 文档

包含单个 Response.Write() 的代码块

ID: cs/asp/response-write
Kind: problem
Security severity: 
Severity: recommendation
Precision: high
Tags:
   - maintainability
   - frameworks/asp.net
Query suites:
   - csharp-security-and-quality.qls

单击以在 CodeQL 代码库中查看查询

包含单个 Response.Write() 的内联代码块可以使用内联表达式更清晰地编写。

ASP.NET 提供了通用的*内联代码*,使用语法“<%...%>”。内联代码可以通过调用 Response.Write() 将内容输出到生成的 HTML 页面中。

在许多情况下,内联代码只有一行长,并且只执行对 Response.Write() 的单个调用。对于这种情况,对 Response.Write() 的调用可能比计算要嵌入的内容的代码更长。这使得理解代码的意图变得更加困难。

建议

ASP.NET 还提供了*内联表达式*,使用语法“<%=...>”。内联表达式不需要调用 Response.Write()。等号 (=) 是一种简洁的方式,用于告诉 ASP.NET 调用 Response.Write()

示例

此示例显示了一个页面,其中内联代码块使用 Response.Write() 写入内容。

<%@ Page Language="C#" %>

<html>
<body>
<p>2 + 3 = <%Response.Write(2 + 3)%></p>
</body>
</html>

在以下示例中,代码块被替换为内联表达式,因此更加简洁直接。

<%@ Page Language="C#" %>

<html>
<body>
<p>2 + 3 = <%=2 + 3%></p>
</body>
</html>

参考资料

  • ©GitHub 公司
  • 条款
  • 隐私