我作業的專案中有一些博客文章,我想它的text欄位應該以某種方式受到限制(可能有一天它會是一個 JSON 欄位)
在域的意義上沒有限制 - 用戶可以隨心所欲地寫,但是,只是為了防止對例外大量文本的黑客攻擊對資料庫造成傷害,猜測,需要一些限制。
正如 SO Q/A 所說:
- PostgreSQL 限制文本欄位為1GB 存盤到 PostgreSQL TEXT 時是否有最大長度
- http POST 限制取決于瀏覽器(2GB - 4GB)https://serverfault.com/questions/151090/
- 據傳聞,Nginx 的默認
client_max_body_size是1MB
那么,如何處理這一切呢?
可能有一些做法,例如:“只需在 app-lvl 中用百萬個字符限制它,不用擔心”?
uj5u.com熱心網友回復:
這是個有趣的問題。如果我理解正確,您正在開發一個應用程式,其中資料庫條目本質上是一篇博客文章(根據我閱讀的大多數博客,通常為 500-1000 字)。
您將博客文章作為文本欄位存盤在資料庫中。您相當擔心大量資料會發生什么。
我完全主張您限制用戶可以輸入的資料量。如果不完全了解您的系統架構,就不可能根據所使用的技術說出理論上的最大尺寸是多少。
但是,最好從用戶的角度來看待這一點。您必須存盤的最大合理文本量是多少,然后讓我們多加一點,比如 10%,因為讓我們面對它,用戶會做出意想不到的事情。然后,當有人嘗試輸入更多資料時,您可以添加錯誤條件。
我提出這種方法的原因很簡單,一旦您定義了最大帖子大小,您就可以使用邊界值分析(僅測驗限制的任一側)來證明您的產品在剛好低于和在限制處都表現正確。通過這種方式,您將了解并可以向用戶等解釋產品行為。
如果您選擇讓架構定義限制,那么您將有未定義的行為。您需要依次分析每個組件,以計算出它們可以接受的最大尺寸以及超過該尺寸時它們表現出的行為。
通常(根據我的經驗)開發人員不會投入這些精力,而是讓用戶為他們進行測驗。這當然通常更糟,因為用戶報告了一個奇怪的錯誤訊息,然后除錯最終是耗時且昂貴的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/431080.html
下一篇:路徑最大寬度
