我想在我的rails 2.0.2應用程序中實現安全的Erb插件。我是 使用此版本的項目特定的目的與Ruby 1.8.7。安全的Erb插件實現問題
我已經提到了以下教程:
http://www.railslodge.com/plugins/430-safe-erb http://agilewebdevelopment.com/plugins/safe_erb
因爲我是一個新手,以 我可以讓只有一些上面的網址的感Rails和Rails相關的插件。老實說我也發現上面的 教程非常通用。
從上面的教程中,我真的無法在很大程度上將這個插件的用途與現實世界的意義聯繫起來。你能否在日常現實世界中使用它?
我已經實現了一個書籍appl,它有一個作者,標題和 發佈日期。我目前面臨的問題實施這個插件的污點 功能
在第二個教程中,他們說我們需要調用受污染的?來自Objects類的方法 。我在我的 books_controller.rb的創建方法中完成了此操作。爲創建方法的代碼如下所示:
def create
@book = Book.new(params[:book])
@book.publishing_date = params[:publishing_date]
respond_to do |format|
if @book.save
flash[:notice] = 'Book was successfully created.'
format.html { redirect_to(@book) }
format.xml { render :xml => @book, :status => :created,
:location => @book }
else
format.html { render :action => "new" }
format.xml { render :xml => @book.errors, :status =>
:unprocessable_entity }
end
if @book.tainted?
flash[:notice] = 'Books are tainted'
format.html { redirect_to(@book) }
format.xml { render :xml => @book, :status => :created,
:location => @book }
else
flash[:notice] = 'Books aren\'t tainted'
format.html { render :action => "new" }
format.xml { render :xml => @book.errors, :status =>
:unprocessable_entity }
end
end
在創建一本新書記錄,我得到通知說「書是不被污染」。我有 將此插件複製到我的供應商/插件目錄中。
根據第二個教程網址,他們說:「當從IO讀取數據時,字符串變得污染,例如從數據庫或HTTP請求中讀取數據。」
但是,當我嘗試創建新書記錄時,它並未發生在我的案例中。 我是否需要明確地污染我正在使用的字符串輸入(其目前的 按照數據庫類型在varchar中 - 我猜這應該不是問題)。如果是的話,請告訴我如何去做 。
或
如果它不是上述情況..我錯過了什麼?
對此的任何見解將非常感激。
謝謝。
Hi Anshul,謝謝你的回答..我想檢查一下這個插件所關注的污染的工作情況,因此我已經把「object.tainted?」 cmd在控制器中。你能給我一個例如的非轉義用戶文本..這樣我就可以將它作爲我的應用程序的測試用例來試用。這將幫助我也真正瞭解該插件的用處。 – boddhisattva 2011-02-12 09:22:33