簡體   English   中英

使用Javascript查詢生成器時防止Rails中的SQL注入

[英]Preventing SQL Injection in Rails while using Javascript Query Builder

我想將jQuery查詢生成器用作多用戶應用程序中的工具: http : //mistic100.github.io/jQuery-QueryBuilder/

我知道,如果安裝不正確,使用這種工具可能會帶來很大的SQL注入風險。

我知道防止SQL注入的傳統方法(即,對WHERE語句進行硬編碼,而不是直接在其中插入用戶輸入的字符串),但是在這種情況下,鑒於我們正在嘗試的動態和靈活性,這將變得有些困難保持東西。

我想知道是否有使用這種查詢生成器之類的方法來設置安全過程的簡便方法。 主要關注的是一個用戶能夠訪問和/或修改另一個用戶的記錄(我不太擔心他們會打亂他們自己的記錄,但是他們都在同一個數據庫中)。

我的一個想法是查找並替換所有有問題的單詞(例如DROP等),但是我知道這會限制用戶輸入(即如果他們想搜索與“他丟下球”匹配的記錄)。 ..也可能不是萬無一失的。

除了必須使用某種復雜的算法進行編碼以生成SQL代碼服務器端之外,還有其他可行的方法嗎?

通常,您應該只在索引的GET請求上接受真正的“過濾”參數。 即使這樣,您也不想隨意地將所有參數都放入WHERE子句中。

如果要讓用戶創建復雜的條件,則可以創建一個簡單的解析器,該解析器接受用戶輸入並通過Arel構建SQL語句。

或者,您可能想使用現有的引擎進行全文搜索,例如Lucene。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM