在我的网站上,一些黑客正在输入坏话。哪种方法可以防止这种情况发生?
我使用ASP.NET,C#和SQL Server作为资源。
我认为第一种方法是最好的。
请告知此检查的优化代码
现在我正在使用这种方法
var filterWords = ["fool", "dumb", "couch potato"];
// "i" is to ignore case and "g" for global
var rgx = new RegExp(filterWords.join(""), "gi");
function wordFilter(str) {
return str.replace(rgx, "****");
}
// call the function
document.write("Original String - ");
document.writeln("You fool. Why are you so dumb <br/>");
document.write("Replaced String - ");
document.writeln(wordFilter("You fool. Why are you so dumb"));
答案 0 :(得分:2)
您应该检查ASP.NET代码,在服务器端。 JavaScript或任何其他客户端检查可以轻松解决。你发布的代码工作得很好,除了它不是特别强大(各种简单的拼写错误会绕过它)。
答案 1 :(得分:1)
确保检查排列,例如
安全 - &gt; $ 3(UR3
我会用
之类的东西替换这个词[REMOVED]或[CENSORED]
对于客户/其他人来说,像s ***这样的词语仍然可以被视为冒犯。
编辑:在这里看到HevyLight关于javascript使用的想法......你可以尝试在C#层中使用字符串过滤器(假设已经完成了繁重的工作和数据库调用)。在写入数据库之前,通过过滤器传递所有字符串帖子(以及其他人可以查看)。
答案 2 :(得分:0)
现实是,你不能阻止100%的坏词。 我将在服务器端进行两步验证(JS可以被禁用,SQL不适合处理它)
创建最常用的最常见坏词列表 - 这可能会占到所有输入的80%。
为嫌疑人创建一个模式列表,以指示您手动验证这些模式。
这可能是
等模式您必须及时更新两个列表。同样,这不会解决100%的情况,但如果正确实施,它可能会捕获并修复95%。