这个正则表达式代码有什么问题?

时间:2013-08-21 07:26:53

标签: c# regex

我想修改我的代码如下,但修改后我的正则表达式不起作用。我做错了什么?

我的代码

Regex reg = new Regex("(ALTER TABLE .+ REFERENCES\\s+)\"USER1\"[.](.+)");
richTextBox1.Text = reg.Replace(richTextBox1.Text, "$1$2"); 

修改后的代码

Regex reg = new Regex(String.Format("(ALTER TABLE .+ REFERENCES\\s+)\"{0}\"[.](.+)",textbox1.text);

richTextBox1.Text = reg.Replace(richTextBox1.Text, "$1$2"); 

1 个答案:

答案 0 :(得分:3)

您的代码的根本问题源于SQL Injection Attacks的威胁。

这种使用字符串操作动态构建sql语句的方法很危险,使用正则表达式。

立即停止

你更有针对性的问题消失了。

使用一些使用参数替换的方法。 ADO.Net命令带有参数或ORM,或者可能写入存储过程。