簡體   English   中英

在JavaScript中驗證SQL WHERE子句

[英]Validate a SQL WHERE Clause in javascript

我如何驗證字符串並知道它是否是有效的SQL where子句。 無效字符串的示例: WHERE 1=1 AND EMPRESA = 'CMIP' AND CD_MAQ ==="jjj"無效字符串的示例: WHERE 1=1 AND EMPRESA = 'CMIP' AND CD_MAQ ="jjj"

感謝您的幫助。

抱歉,您不能輕易做到這一點……除非您喜歡用Java編寫SQL解析器。

一種解決方案是將查詢發布到后端,該后端在try catch塊中運行該查詢,然后返回是否存在錯誤。

我害怕認為此驗證的正則表達式/規則列表將是手動執行的操作。

為什么要這樣做? 說明您的實際目標,而不是建議的解決方案,我們可能會想出一個更好的主意...如果您按照您的建議將WHERE子句從搜索頁傳遞到SQL,則這不是正確的方法。 。

請改用參數化查詢。

另請閱讀SQL注入: 什么是SQL注入?

這是一個復雜的問題,您實際上想要做的是編寫一個SQL解釋器。 顯然,這些已經存在(當然,在數據庫系統上),但是也有一些庫可以為您做到這一點。 對於Javascript,請參閱:

https://github.com/forward/sql-parser

雖然,您可能不想只在客戶端執行安全性至關重要的驗證,盡管這樣做並不會傷害您,然后再在服務器端進行驗證,然后再運行它(如果這樣做是最終目標),則不會受到任何損害。

暫無
暫無

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

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