我有一個textarea
在我的一個Rails窗體中接受來自用戶的自由格式輸入。如何處理Rails表單中的惡意大輸入textarea
客戶端,我可以在表單上設置一個maxlength: 500
以防止某人惡意粘貼過長的輸入。
服務器端,我該如何實現這個相同的安全措施?有人可以繞過我的形式,禁用該屬性或POST
直接到我的終端與一個textarea參數非常長。我假設這樣的攻擊會導致我的服務器嘗試解析大文本。
我總是可以在我的控制器中檢查長度(例如if params[:input].length < 500...
),但到那個時候params[]
已經設置並且必須解析該輸入。
Rails是否負責這種類型的攻擊?或者有什麼我可以/應該做的?
謝謝!
感謝您的迴應!我同意我可以實施模型驗證。然而,控制器甚至在嘗試將其保存到模型/數據庫之前接收並處理該請求。當控制器嘗試處理它時,真的很大的文本字符串可能會超出可用內存,對嗎?這更像是一個邊緣情況,但我只關心Rails如何開始處理這個(潛在的)安全漏洞。 – user2490003
在這種情況下,只需在textarea輸入端添加一個最大長度限制。http://www.w3schools.com/標籤/ att_textarea_maxlength.asp –
爲此簡單添加一個before過濾器並拒絕來自控制器級別的請求。您也可以在請求觸及機架堆棧時訪問,但您需要深入挖掘。 –