2010-12-01 29 views
3

可能重複:
Common programming mistakes for ColdFusion programmer to avoid?十大ColdFusion的編程錯誤

這個問題的目的是爲了教育自己,我一起工作的人,也許還有其他的ColdFusion程序員那裏。

對於那些在Adobe ColdFusion中編程或者在ColdFusion中編程的人,您所犯的十大錯誤中有哪些或者哪些不該生氣即

我的意思是給我最糟糕的最壞的,絕不能做什麼,要避免什麼。

有時,它幫助顯示「做什麼」現在好了,我想顯示「不要做什麼」

或許大家分享一些您的編碼惡夢...

把它!

+0

沒有正確確定變量的範圍 – 2010-12-01 14:56:53

+0

在查詢中不使用cfqueryparam – 2010-12-01 14:57:19

+4

由於這不是一個特定的問題,(沒有「正確的」答案),您應該將其設爲Community Wiki。 – 2010-12-01 15:55:03

回答

13
  1. 編程,就好像你只是誰將會在代碼不斷努力
  2. 有關的代碼
  3. 使用英鎊符號複雜或奇怪的部分沒有評論的一個(#)不必要地
  4. 不使用cfbreak到跳出循環的時適當
  5. 使用CustomTags爲「業務邏輯」,當CFC會更合適
  6. 不緩存單氯氟烴在應用程序或服務器範圍
  7. ColdFusion中,分頁大的記錄時,分頁,應在SQL進行
  8. 沒有設置輸出氟氯化碳=「假」和
  9. 創建陣列中的每個cffunction在高流量的網站對象時,一個簡單的記錄集(查詢對象)會表現得更好,並簡化
  10. 放入太多的邏輯視圖層
7

起動器設置:

  • 範圍的局部變量
  • 使用CFQUERYPARAM
  • 不要重新加載在每次請求
  • 不要使用應用範圍的請求或會話特定數據
  • 應用範圍
  • 不要在cookie中存儲敏感數據(用戶名,密碼,用戶名等)。使用會話或客戶端範圍。
  • 使用數據庫客戶端變量
  • 緩存常用或緩慢變化的查詢
  • 如果HTML/CSS /等。不是動態的,存儲或緩存生成的代碼
  • 讓你的DB做盡可能多的數據處理儘可能
  • ,永不離開生產箱啓用強大的錯誤
  • Alsays,總是比一個環境更;不要在生產箱上編碼。
4

要通過Ben添加到上面的漂亮列表中 - 關閉生產框中的調試。

2

什麼不能做呃?下面是我可以直接想到的3:

  1. 如果使用try/catch,不要讓catch沒有做任何事情,特別是在大塊代碼上。
  2. 請勿使用評估 - 99.5%的時間不是必需的。
  3. 不要使用動態變量,特別是當它們由URL範圍設置時。

    < cfset#url.value#= url.dontdothis > <!---?value = application.dsn任何人?--- >

3

其他人對這個感動,但它承擔着把在那裏的任何cf newb的更多細節誰可能會偶然發現這一點。 始終使用cfqueryparam!

不要這樣做:

<cfquery name="getSome" datasource="myDB"> 
    select * from users 
    where userID = '#url.userID#' 
</cfquery> 

相反,這樣做:

<cfquery name="getSome" datasource="myDB"> 
    select * from users 
    where userID = <cfqueryparam value="#url.userID#" cfsqltype="CF_SQL_INTEGER"> 
</cfquery> 

Here is a tool (cfqueryparam scanner),這將有助於你找到,如果你有任何疑問脆弱。

另一件事是,如果你是一個新手,而且你不確定你的應用是否安全,那麼試試免費的Hack My CF工具,它幫了我很大的忙。 (不以任何方式附屬於本網站,fyi)

0

我剛剛爲我公司編寫了一套新的編碼標準,涵蓋了很多這種類型的東西。我稍後會在這裏和/或我的網站上發佈信息。

0

在Windows服務器上,保留默認客戶端變量數據源。它會垃圾你的註冊表。

2

不要將密碼存儲爲純文本。