構建防止sql注入嗎?rails:構建方法是否防止sql注入
例子:
@post = @user.posts.build(params[:post])
@post.save
沒看到建在軌安全文檔。
謝謝!
構建防止sql注入嗎?rails:構建方法是否防止sql注入
例子:
@post = @user.posts.build(params[:post])
@post.save
沒看到建在軌安全文檔。
謝謝!
build
本身不會向數據庫寫入任何內容,所以SQL注入不適用。當您致電save
時,無論對象是通過build
創建還是通過其他機制(例如將屬性傳遞給new
或使用單個attribute=
方法創建),都將使用相同的代碼將對象保存到數據庫。
返回已通過連接表實例化 屬性和鏈接到該對象 集合 類型的新對象,但還沒有 尚未保存。
的save
方法使用適合於您正在使用(如MySQL的),使得所得insert
或create
查詢不容易受到SQL注入數據庫的方法逃避任何報價等在你的屬性值。這同樣適用於update_attributes
以及您傳遞給find
的任何參數化的:conditions
。當你需要小心並且可能需要做一些手動轉義的時候,如果你曾經將字符串作爲查詢傳遞給數據庫連接。
重複:http://stackoverflow.com/questions/2144778/sql-injection-prevention-for-create-method-in-rails-controller – dombesz 2010-07-07 09:39:16
這不是一個真正的重複,因爲它不詢問有關使用' build'。此外,可能的重複內容應該可以作爲對問題的評論而不是答案發布。 – mikej 2010-07-07 12:38:17