在coldfusionMX 7的時代,如果你還把自己的sql語句停留在cf4或5的時代,那我可以告訴你,你落伍了,在7的時代,我們完全可以使用cfqueryparam來改進我們的程式,如果你問我原因的話,就只有兩個,一是安全,二是效率。讓我來告訴你why...
很多時候,我們都需要用url來傳遞參數給sql執行,例如:http://www,yoursite.com?itemID=4
SELECT *
FROM tableName
WHERE idColumn =' #URL.itemID# '
這個時候,大家有沒有考慮到,如果有個人在你的url後面加上http://www.mysite.com/page.cfm?itemID=4; DROP TABLE tableName.你怎麼辦,那個時候你的sql語句將會變成:
SELECT *
FROM tableName
WHERE idColumn = 『#URL.itemID#』; DROP TABLE tableName
那這樣的,就game over了,如果你加上cfqueryparam的話
這樣的話,如果對方進行sql攻擊,帶入drop命令,就會被cfqeryparam所阻攔,這就是我所要說的 cfqueryparam所帶來的安全性考慮
第二是效率
效率體現在,如果在sql語句中,你這樣寫
SELECT *
FROM tableName
WHERE idColumn =#URL.itemID#
那麼系統需要自動的去判讀你寫入的這個value是不是和sql數據庫中的一致,在每次操作sql時都需要去做判讀,
如果你使用cfqueryparam,cfsqltype功能可以很好的告訴sql,value屬於什麼類型,在大數據量的情況下提高效率是很重要的環節
引用自:查爾斯實驗室
全站熱搜