我正在处理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