最常見的威脅看出來是企圖通過這個類來提升特權。例如,如果您有一個具有admin屬性的用戶表,用於確定用戶是否爲管理員,即使無法在您描述的表單中設置此屬性,用戶也可以在頁面上爲表單的操作製作帖子&admin=true
或&admin=1
,具體取決於相應的列數據類型。
針對此問題的保護是在您的模型中指定可通過批量分配進行更新的屬性。
你可以用attr_accessible
方法做到這一點。
attr_accessor :x, :y, :admin
attr_accessible :x, :y
這將防止管理員從屬性通常通過在編輯操作使用update_attributes
呼叫被更新。
要注意的另一件事是自動註冊。爲此,您可以做幾件事。最常見的是實現驗證碼。如果沒有這個人,可以編寫一個腳本,在表中創建1_000_000個用戶,這使得很難確定哪些是真實的,哪些是假的。例如,您也可以考慮通過IP登錄註冊嘗試,並限制一小時的請求數。
至於你的編輯頁面保護,保護這個最常見的方法是在你的控制器中使用一個before_filter,以確保用戶在允許頁面呈現之前有一些會話信息。
class UsersController < ApplicationController
before_filter :protect, :only => [:edit]
private
def protect
unless current_user
redirect_to login_path
end
end
end
只是一些例子。我相信還有更多的方法可以保護你自己,但這至少會讓你瞭解需要注意的地方,以防止最基本的嘗試破壞你的一天。這個話題的問題在於用來破壞/劫持你網站的技術在不斷髮展。無論如何,有些人認爲他們被覆蓋並受到打擊。經常通過腳本備份數據,編寫其他檢查數據庫完整性的腳本。如果您看到表中的用戶實例突然跳躍,您將知道某些事情已經結束,請查看日誌並恢復您的數據。
如果你的網站很受歡迎,它會受到攻擊,期間。
有關驗證碼的另一件事,我聽說屏幕上顯示的任何內容都可以通過腳本進行刮擦以保證安全,因爲這可能看起來有些人才可以像Macarena一樣圍繞您的安全進行跳舞。
儘可能地積極主動,並對您的反應措施進行深思熟慮。
首先,您必須確定您要防範的威脅。 – 2012-01-14 13:06:03
http://stackoverflow.com/q/262145/1114171可能的重複基本上讀取[OWASP](https://www.owasp.org/)。也許還可以從後者中查看[Hackipedia](http://www.hakipedia.com/index.php/Hakipedia)和[HtS](http://www.hackthissite.org/),您可以學習利用漏洞,希望能夠幫助您獲得在自己的網站上發現弱點的經驗**免責聲明:我不對您的行爲承擔責任或不承擔任何責任** – 2012-01-14 13:27:22