0
我使用on Rails的3.0.9 Ruby和我想知道「多少可能是危險」使用下面的語句,以保存在數據庫中的記錄:'@ class_object_instance.save!(:validate => false)'方法有多危險?
@user.save!(:validate => false)
也就是說,會發生什麼?例如,惡意用戶可以在數據庫中篡改某些東西(例如:設置一些不允許的值)?
注意:我指的主要是:validate => false
上述代碼的一部分,它可以跳過驗證過程。
那麼,關於跳過驗證的主要問題是,它會讓用戶在您的數據庫中輸入垃圾數據。如果您發現自己需要跳過模型驗證,則表示您需要更新驗證。 如果您跳過驗證,數據庫字符串仍然會被轉義,所以您不能輸入像「'; drop table users」這樣的值。進入數據庫。 Rails 3在默認情況下也會在字符串中轉義html,所以除非您特別說明<%= string_value.html_safe%>,否則string_value將以轉義的HTML顯示。所以你可能會從黑客安全,但你的數據質量將受到影響。 –