我有一个关于 WebMatrix razor (C#) 安全性的简单问题
我(在很短的一段时间内)考虑使用字符检查来帮助验证表单以对抗 SQL 注入,但是,在意识到参数化查询是解决这个问题的最佳方法之后,我已经注释掉了这个看起来像这样的检查:
foreach(char c in POIName)
{
if(c=='\'' || c=='$' || c=='\"' || c=='&' || c=='%' || c=='@' || c=='-' || c=='<' || c=='>')
{
errorMessage = "You have entered at least one invalid character in the \"POI Name\" field. Invalid characters are: [\'], [\"], [&], [$], [@], [-], [<], [>], and [%]";
}
}
现在,我的问题是:我应该完全删除这样的行,因为它们是不需要的(以允许文本区域中的最大用户自由等),还是应该仍然有一些特定于 WebMatrix 的字符检查(或者不是特定于它)事情)。
也许不允许“@”或“;” 或“<”或“>”??
据我了解,将查询参数化(正如我所拥有的)自动转义有害字符并将整个内容重新包装为字符串(或者无论如何,哈哈),并且我的数据库已被证明不受任何 SQL 注入攻击我已经扔了。
我想我很担心,因为我不确定剃刀是否会受到影响,或者我是否应该担心 XSS(不,我不是博客或任何应该接受 html 标签甚至任何类型的尖括号的东西)。
抱歉,如果这个问题到处都是,但我不知道在哪里可以找到 Stack Overflow 通常提供的确切答案(例如,我相信这个社区比一些谷歌搜索要多得多,这我保证我在发布之前已经尝试过)。
谢谢你的帮助!