11
我在我的數據庫遷移文件,這些字符串/文本字段:Rails ActiveRecord驗證:字符串的最大長度?
t.string :author
t.string :title
t.string :summary
t.text :content
t.string :link
而這些是我的問題:
- 每個字符串/文本屬性應該有兩個目的的最大長度的驗證,安全性(如果你不想接收幾MB的文本輸入)和數據庫(如果string = varchar,mysql的限制爲255個字符)。這是正確的還是有沒有任何理由不對數據庫中的每個字符串/文本屬性進行最大長度驗證?
- 如果我不關心作者和標題的確切長度,因爲他們不會太長時間不能存儲爲字符串,我應該爲每個字符串設置最大長度爲255嗎?
- 如果URL的最大可能長度大約爲2000個字符,將鏈接存儲爲字符串而不是文本是安全的嗎?我應該驗證鏈接屬性的最大長度,如果我已經使用regexp驗證其格式?
- 內容(文本)屬性應該具有最大長度,以保護數據庫不受無限長輸入的影響嗎?例如,將文本字段的最大長度設置爲100,000個合理的字符,還是這完全毫無意義且效率低下?
我明白,這些問題對某些人來說可能看起來並不重要,但仍然 - 這是對輸入的驗證,這對於任何應用程序都是必需的 - 我認爲在這裏值得相當偏執。