0

我使用cftableorcfloop来输出 ColdFusion 中的项目表。但是在单击表格行之一时调用编辑器页面的正确方法是什么?

这是代码:

<table class="grid">
<tr>
    <th>id</th>
    <th>Date</th>
    <th>Description</th>
    <th>Status</th>
    <th>Urgency</th>
    <th>Severity</th>
</tr>
<cfloop query="GetIssues">
<tr>
    <td><cfoutput>#id#</cfoutput></td>
    <td><cfoutput>#CreatedOn#</cfoutput></td>
    <td><cfoutput>#ShortDesc#</cfoutput></td>
    <td><cfoutput>#Status#</cfoutput></td>
    <td><cfoutput>#Urgency#</cfoutput></td>
    <td><cfoutput>#Severity#</cfoutput></td>
</tr>
</cfloop>
</table>

我可以用来a href向编辑器页面发出 GET 请求,但这是正确/安全的方式吗?

4

1 回答 1

3

您当然可以创建一个指向编辑器页面的链接并传递 ID,但是,如果您的 ID 是数字,则恶意用户很容易猜出另一个项目的 ID。为了缓解这个问题,我倾向于使用 UUID 作为我的 ID。猜测另一个元素的 ID 是非常困难的。

此外,最好将 cfloop 包装在 cfoutput 中,而不是包装每个 td - 您应该限定变量名。

例如:

<cfoutput>
    <cfloop query="GetIssues">
      <tr>
        <td><a href="edit.cfm?id=#GetIssues.id#">#GetIssues.id#</a></td>
        <td>#GetIssues.CreatedOn#></td>
        <td>#GetIssues.ShortDesc#</td>
        <td>#GetIssues.Status#</cfoutput></td>
        <td>#GetIssues.Urgency#</cfoutput></td>
        <td>#GetIssues.Severity#</td>
      </tr>
    </cfloop>
</cfoutput>
于 2013-08-02T15:31:33.193 回答