为什么别人能在我的SQL数据库里建表?

来源:百度知道 编辑:UC知道 时间:2024/06/15 18:59:21
一台server2003,启用默认防火墙,只开80端口 装sql2000,已入默认1433端口为其他。
网站jsp已做了SQL防注入(自认为这样可以防止SQL注入),用于该网站的SQL用户是独立建立的一个SQL访问帐户,SA也加了复杂密码。独建的SQL访问帐户只给了public和db_owner权限。

现在的问题是,数据库里面的全部表还是被黑,每个字段只保留前面几个字符和<script>恶意脚本。(但仅仅该网站的数据库,其他数据库未发现异常。
在此期间,我发现我的数据库上多了一张最近两天才建的表,建表的用户名就是我独立建立的该网站的SQL访问名,该表只有两个字段,内容全部为空,猜想是用来猜网站目录用的吧。

一、哪种安全问题造成这种现象的可能性最大?
二、怎样禁止用户远程建表?

问题1:楼主说只打开了80、1433(默认为其他,当然也是打开了。)端口,但是在我看来未必,例如,server2003里面装qq了吗?装暴风影音了吗?装其他联网的软件了吗?如果装了,那肯定不只楼主说的那2个端口。还有就是楼主说的“自认为这样可以防止SQL注入”,这个首先可以查看一下日志,看看里面的连接是否为正常情况,还有就是查询时,你是否也设置了相应的处理....以及数据库操作的查看。如果你认为网站是比较安全的,那就要看看你的服务器是否打了最新补丁,服务器是否安全,以及服务器上的一些软件是否安全。
问题2:如果人家破解了你的网站或者服务器,这个我估计是没办法的,如果没有破解,那就是SQL账户权限的设置了,自己可以看看相关文档,再此不详述了,1楼也说了此权限的操作了。
最后根据楼主的描述:“每个字段只保留前面几个字符和<script>恶意脚本”,估计是中了sql注入。原因是,我想一个正常的破解者,如果他破解成功了,应该不会在往表里面在插入恶意脚本,而且像楼主说的那么多。如果没有破解成功,此时的恶意脚本估计是破解者在破解时的测试。

只能说明,服务器安全级别太差!

另外SQL中的账户只要给了public和db_owner权限就什么都可以操作了!

照LZ的描述来看,只能找网络管理员了。