我正在設計一個Web部件,用戶可以在其中輸入搜索短語的MOSS搜索索引。我使用FullTextSqlQuery
類進行搜索。Sharepoint企業SQL搜索語法中的SQL注入
當我創建我的select
語句時,我顯然必須使用連接來包含用戶的輸入。最後的聲明應該是這樣的:
SELECT title, author from portal..scope()
WHERE ("SCOPE" = 'TheDocuments')
AND CONTAINS(MYPROPERTY, 'TheValueThatuserSpecified')
所以,問題是,我該如何避免SQL(?)從用戶輸入注入?是否有一些特定的效用函數?在php/mysql項目中,我會使用mysql_real_escape_string
。在SharePoint命名空間中有類似的東西嗎?
確實如此,但用戶可以通過這種方式輸入搜索短語,例如`')AND CONTAINS(ANOTHEROPYPY,'Anothervalue)或者(SCOPE ='AnotherScope`),這會產生一個有效的搜索查詢,但方式完全不同。要點是 - 你必須注意逃脫的撇號,引號等 – naivists 2011-01-11 15:02:19