0

我发现我们的软件容易受到 sql-injection 的攻击。

我们的软件是用 C# 和一种 Gizmox 框架编写的。我们的框架无法处理参数化查询并使用字符串连接来构建 sql 查询。

我知道这听起来很糟糕,但从长远来看,我们会重构它。在短期内,我们需要一个快速的(也许是肮脏的)修补程序。

我们的想法是使用正则表达式针对以下黑名单验证用户输入:

--”、“ ;--”、“ ;”、“ /*”、“ */”、“ @@”、“ @”、“ char”、“ nchar”、“ varchar”、“ nvarchar”、“ alter”、“ begin”、“ cast”、“ create”、“ cursor”、“ declare” , " delete" , " drop" , " end" , " exec" , " execute" , " fetch" , " insert" , " kill" , " open" , " select" , " sys" , " sysobjects" , " syscolumns" , " table" , " update"

由于黑名单是您可以拥有的最弱的 sql 保护,我想寻求更好的解决方案。

4

0 回答 0