我正在處理SQL注入,我需要用cfquerparam標籤替換coldfusion querytags中的sql參數。 對於這個我匹配任何看起來像這樣的PARAMS:正則表達式:匹配沒有雙引號的sql參數
select * from table
where
test = #var2#,
test ='#var3#'
test2 like '%#test#%'
test3 like '%#test#'
test4 like '#test#%'
但不
<cfqueryparam value="#test123#">
當前的正則表達式我已經是:
[%']?#([^#]*)#['%]?
目前這會發現所有sql params,但也在cfqueryparam中的test123。 我需要做的以及我沒有成功的地方是排除#param#
包圍雙引號。 所以,沒有"#test123#"
,但所有的都很好。
我試着在它前面加入[^"]?
,但是它也開始在比賽前選擇其他人物。同樣的情況發生在後面。
有沒有人有解決這個問題?
從我閱讀提問者已經知道的問題中看出,他希望使用'cfqueryparam',但他試圖找到當前缺失的所有地方,並且需要在搜索中使用正則表達式的幫助。 – ale
正確。我知道如何防止它,但我的正則表達式已完成99%,它只是需要一點幫助,讓我的正則表達式不匹配「%test%」(包括雙引號)。 對於當前的正則表達式,我仍然需要檢查正則表達式中返回值的雙引號並將其刪除。 – Mattijs