Sql 我在我的数据库中发现了很多奇怪的字符串,有人试图进入我的网站?
我有一个小网站(MVC5),里面有联系我们的功能,今天早上我发现我有数百封来自同一IP的电子邮件。我从数据库查询结果,所有的结果都只是一堆奇怪的字符串和一些脚本/SQL注入 我已经在数据库(SQL Server 2014)上使用了参数,并在所有用户输入上使用了白名单过滤。只是想知道我是否应该担心Sql 我在我的数据库中发现了很多奇怪的字符串,有人试图进入我的网站?,sql,sql-server,asp.net-mvc,security,sql-injection,Sql,Sql Server,Asp.net Mvc,Security,Sql Injection,我有一个小网站(MVC5),里面有联系我们的功能,今天早上我发现我有数百封来自同一IP的电子邮件。我从数据库查询结果,所有的结果都只是一堆奇怪的字符串和一些脚本/SQL注入 我已经在数据库(SQL Server 2014)上使用了参数,并在所有用户输入上使用了白名单过滤。只是想知道我是否应该担心 Joey'" Joey\\'\\" Joey'"'"'"'" Joey AND 1=1 --
Joey'"
Joey\\'\\"
Joey'"'"'"'"
Joey AND 1=1 --
Joey AND 1=2 --
Joey" AND 1=1 --
Joey" AND 1=2 --
Joey'
Joey
Joey\'
Joey
Joey" UNION SELECT 8, table_name, 'vega' FROM information_schema.tables WHERE table_name like'%
1 AND 1=1 --
1 AND 1=2 --
' AND 1=1 --
' AND 1=2 --
" AND 1=1 --
" AND 1=2 --
Joey''
Joey' UNION SELECT 8, table_name, 'vega' FROM information_schema.taables WHERE taable_name like'%
javascript:vvv002664v506297
vbscript:vvv002665v506297
" onMouseOver=vvv002666v506297
" style=vvv002667v506297
' onMouseOver=vvv002668v506297
/../../../../../../../../../../../../etc/passwd
Joey`true`
Joey`false`
Joey`uname`
' style=vvv002669v506297
Joey"`false`"
Joey"`uname`"
Joey'true'
Joey'false'
Joey'uname'
Joey" UNION SELECT 8, table_name, 'vega' FROM information_schema.taables WHERE taable_name like'%
htTp://www.google.com/humans.txt
hthttpttp://www.google.com/humans.txt
hthttp://tp://www.google.com/humans.txt
Joey
Joey-0-0
Joey\'\"
Joey\\'\\"
Joey - 0 - 0
Joey 0 0 - -
http://vega.invalid/;?
//vega.invalid/;?
vega://invalid/;?
src=http://vega.invalid/;?
" src=http://vega.invalid/;?
Joeybogus Vega-Inject:bogus
www.google.com/humans.txt
Joeybogus Vega-Inject:bogus
Joey-0
Joey-0-9
Joey
Joey'"
Joey' UNION SELECT 8, table_name, 'vega' FROM information_schema.tables WHERE table_name like'%
Joey' AND 1=2 --
Joey' AND 1=1 --
Joey''''""""
Joey\'\"
Joey
Joey
Joey
http://www.google.com/humans.txt
Joey
Joey"`true`"
Joey
看起来好像有人试图使用SQL注入。只要您使用输入验证和转义输入,您在这方面应该是可以的。不过,您可能需要研究其他强化站点的方法 这里有一个资源。
和另一个资源。希望有帮助 似乎没有什么你需要过分担心的,人们总是会尝试利用输入表单来查看他们是否能够获取任何数据。看起来你已经做了所有的基本和标准的方法来阻止他们去任何地方。有两种方法可以用来阻止这种情况的发生 请求限制 这很简单,您实际上只是限制了单个用户在一段时间内能够在联系人表单中提交数据的次数。关于这一点,有很多文章,许多答案散落在各处。最简单的方法是使用HttpRuntime缓存并简单地存储用户的IP地址和过期时间。然后在每个请求中检查缓存,确保其IP地址未存储在缓存中 知识产权禁令 这种方法与上面的方法类似,但更长期一点。最简单的方法是跟踪提交多个查询的用户,如果他们在10分钟左右的时间内发送了超过30个查询,请将他们的IP地址添加到一个表中,您可以对照该表进行检查,防止他们提交更多查询
你甚至可以将两者结合使用。是的,有人试图入侵你的网站。看起来可能是个脚本
我建议使用一个安全扫描工具,看看你的应用程序中是否有任何明显的漏洞。OWASP有很多有用的工具。
不过,您可能想研究其他强化站点的方法。
有什么建议吗?我添加了一个关于ASP.NET SQL注入保护的参考。还有一个参考,对于更一般的强化是一个很好的资源安全性。对于白名单数据,SQL Server的标量函数可以做到这一点<代码>---unicode更为复杂(即:U+003C或<;),请参见[unicode表](http://unicode-table.com/en/#003C)对于其他字符,请删除。声明@datafieldvarchar(400)=“警报”(“黑客”);声明@mask varchar(20)='%[^!-;=?-~]%',而PatIndex(@mask-COLLATE-Latin1\u-General\u-BIN,@dataField)>0 Set@dataField=Stuff(@dataField,PatIndex(@mask-COLLATE-Latin1\u-General\u-BIN,@dataField),1'')选择@dataField是的,有人试图攻击你,因为其中许多行看起来像简单的SQL注入攻击。只要您使用参数化查询(即,手动转义用户输入没有任何有趣的事情),您就应该可以了。