簡體   English   中英

SQL Server 的全文搜索 CONTAINS() 是否容易受到 SQL 注入的攻擊?

[英]Is SQL Server's full text search CONTAINS() vulnerable to SQL Injections?

在我們的代碼庫中,我們使用 Hibernate 並使用它的 Restrictions.sql() 方法使用 MS SQL Server 的全文搜索。 sqlRestriction 是使用 CONTAINS(column_name, search_text) 謂詞構建的,其中 search_text 是用戶輸入的文本。

 Restrictions.sqlRestriction("CONTAINS(" + column_name + ", ?)", "\\"" + userInput + "*\\"", StandardBasicTypes.STRING)

這個CONTAINS()方法是否容易受到 SQL 注入的攻擊?

我對 SQL Injection 了解不多,但據我所知,它只會影響您使用“like”搜索列中的部分文本,這里我們正在搜索整個用戶文本,所以我認為它很好,但它最好通過自己進行一些注入攻擊作為測試來符合。 更好地搜索有關該主題的更多信息或等待一些好的答案

是的,這種注入是脆弱的。 這並不是說CONTAINS本身導致了問題,問題在於注入

不幸的是, CONTAINS()不接受列名變量,因此需要注入它。 為了使此注入安全,您必須對照白名單進行檢查。

如果根據白名單進行驗證,則不存在漏洞。 不要只是直接接受用戶輸入到查詢。

暫無
暫無

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

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