良好的正则表达式,用于消毒输入

时间:2011-11-25 05:41:50

标签: asp.net security

我正在使用一般的正则表达式来清理表单输入,我想在名字的姓氏字段上使用它,它将存储在DB中,如果可以的话,几乎可以在其他常规位置使用它。

我正在使用ASP.net做任何事情

1 个答案:

答案 0 :(得分:0)

清理用户数据是一个输出问题,而不是输入问题。

对于MSSQL或PostGreSQL来说,MySQL数据库被认为是“卫生的”并不一定是“卫生的”。数据库被认为是“卫生”的很可能与您在HTML文档中可以安全发送的内容不同。 XHTML又是一个不同的故事,如果您将用户提供的数据输出到javascript块或CSS块中,它又会有所不同。无法清除所有输出目标的用户提供的数据。

最好使用提供的库函数来清理数据,而不是构建自己的正则表达式。 PHP(我碰巧比ASP.net更了解)有mysql_real_escape_string()。我确信ASP.net将有一个库函数来清理用户提供的数据,以便与各种数据库一起使用。它也可能具有用于清理用户提供的HTML数据的库函数。

Parameterised queries甚至比清理用户提供的数据更好。它与ASP.net can be done。这是使用数据库的正确方法。