网站的作品投票,一个不注意就被人刷了2000多票。现在加了个投票前需要输入验证码,暂时还不知道有没有用   今天一看,居然更惨,查看了一下数据库表内的值,作品图片被删掉,作品介绍部分被替换为一个外部连接的图片。   最郁闷的是,现在都搞不清楚是哪里出了问题。   服务器用的是E动的虚拟主机,应该不是服务器安全上的事   系统日志log文件我看的眼花,也不知道怎么查线索   网站丢了管理员密码?或是被SQL攻击?   我现在天天被整的睡不好觉,一醒就发现网站又被修改了   我还很菜,也不知道该怎么检查自己的网站,该怎么做防范工作   请教各位前辈   希望能在有空的时候帮帮我这个初学者   哪怕给指点下方向也好。谢谢谢谢

解决方案 »

  1.   

    帮你顶一下吧我刚接触.NET和SQL SERVER   还没有接触到安全的考虑
      

  2.   

    程序逻辑问题吧...
    或者是SQL注入?
      

  3.   

    应该是SQL注入,检查一下你的SQL语句有没有把变量过滤掉危险字符,如:',--,chr这些,一般来说在查询前做一次详细的检查会很有效的解决被注入的问题.
      

  4.   

    有很大的可能是SQL注入你是否加了SQL语句验证。
      

  5.   

    应该是SQL注入问题!如果是JAVA的话有N种办法,.net你只有加SQL验证和过滤
      

  6.   

    .net 的话最好使用 SqlParameter 类来进行参数的传输
    一般应该没问题的。大家怎么看
      

  7.   

    我也怀疑sql注入攻击没有完全过滤掉危险字符 凡是用户能够输入的地方都做了输入限制就可以了吧?
      

  8.   

    写个javascript 屏蔽威胁字符
      

  9.   

    先通过IIS日志查看一下是通过什么方式来攻击的,然后才好确定安全措施。
      

  10.   

    用SqlParameter,不要直接拼SQL语句
      

  11.   

    投票被刷这个没什么好的解决办法,偶上次做的是用cookie判断,但是还是被刷,如果叫别人注册才能投票,偶想没得几个人会注册,投票时输入验证码这方法还可以但还是会被无聊的人刷,首页被改可能是你上传的目录被别人传asp木马了吧,最好设置上传目录只有只读权限,并不能执行asp网页,你的传品上传时要验证上传的文件名,最好上传后的东东要管理员证认后才能显示。还有你如果用sql做数据库的话,看看你的代码是否会被注入!
      

  12.   

    由于楼主没给网站,大致推测:
    1."网站的作品投票,一个不注意就被人刷了2000多票。现在加了个投票前需要输入验证码,暂时还不知道有没有用"---------“验证码”和'刷'票没看出有什么必然联系!有可能是脚本注入,比如:禁用javascript,然后在转向连接里面写入2000,然后你request后插入等......
    2." 今天一看,居然更惨,查看了一下数据库表内的值,作品图片被删掉,作品介绍部分被替换为一个外部连接的图片。"----------那肯定是拿到服务器权限了!
      

  13.   

    啥叫JAVA有N种方法...网上N个JSP做的网站,用个' OR 1=1 就搞定了这个还和语言扯上什么关系了?不管你用什么东西做,把底层封装一下,用SQL参数,就根本没有SQL注入的问题了
      

  14.   

    估计是被SQL注入了
    哈哈,不要在程序里面写拼接SQL了,还是多写的存储过程吧
      

  15.   

    啥叫JAVA有N种方法...网上N个JSP做的网站,用个' OR 1=1 就搞定了这个还和语言扯上什么关系了?不管你用什么东西做,把底层封装一下,用SQL参数,就根本没有SQL注入的问题了
    ----------------------------------------------------------------
    应该是 ' or 1=1 -- 把后面的注释掉
    把那个存储过程删除了
    1.sp_shellcmd 好像是这个
    2.尽量不要让用户输入html代码(webediter里面)
      

  16.   

    用SqlParameter,不要直接拼SQL语句。光这么一条就够了!
      

  17.   

    1服务器漏洞?
    2查看图片上传的代码,是否有漏洞
    3查看是否有sql注入
    4查看log日志 
    5之后查看网站是否有不明文件比如webadmin之类的东西
    6等等..
      

  18.   

    使用 SqlParameter 类来进行参数的传输
      

  19.   

    SqlParameter
    这个比较安全
    再加上URL重写,应该算比较安全了吧
      

  20.   

    服务器端的验证很重要还有就是不要用SQL直接拼成SQL命令