1

我正在建立一個社區網站,用戶註冊並創建配置文件。 現在,當用戶註冊後,他們可以點擊一個鏈接,將他們帶到網站的編輯配置文件區域。如何在rails上正確保護ruby中的用戶配置文件數據庫表?

在這裏,他們可以在自己的姓名,年齡,選擇生日填寫並填寫的東西,如個人統計,約我等

我想知道什麼是保護我的配置表從惡意的最佳方式黑客?當涉及到他們的網站的編輯個人資料部分時,大多數類似的網站似乎沒有任何驗證。因此,用戶可以填寫任何內容並仍然提交沒有問題的表單。

我在想什麼是允許這種功能但同時保護我的數據庫的最佳方式?

我應該只是設置最大長度驗證規則和其他東西嗎? 我不太清楚如何處理這個問題。

我已經下拉選擇菜單,文本區域框和大量文本字段,其中將輸入有關用戶的數據。

您將如何處理此問題和/或處理此問題的最合適方法是什麼?

親切的問候

+0

首先,您必須確定您要防範的威脅。 – 2012-01-14 13:06:03

+1

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

回答

1

最常見的威脅看出來是企圖通過這個類來提升特權。例如,如果您有一個具有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一樣圍繞您的安全進行跳舞。

儘可能地積極主動,並對您的反應措施進行深思熟慮。

相關問題