0

cftableorを使用cfloopして、ColdFusion でアイテムのテーブルを出力します。しかし、テーブルの行の 1 つをクリックしたときにエディター ページを呼び出す正しい方法は何でしょうか?

コードは次のとおりです。

<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>

エディター ページへの GET リクエストを作成するために使用できますa hrefが、それは正しい/安全な方法ですか?

4

1 に答える 1

3

確かに、エディター ページへのリンクを作成して ID を渡すことができますが、ID が数値の場合、悪意のあるユーザーが別のアイテムの ID を簡単に推測できます。この問題を軽減するために、私は ID に UUID を使用する傾向があります。別の要素の ID を推測することは非常に困難です。

また、各 td をラップするよりも、cfloop を cfoutput でラップする方が適切です。また、変数名のスコープを設定する必要があります。

例えば:

<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 に答える