【问题标题】:how can i protect my website我怎样才能保护我的网站
【发布时间】:2013-01-16 17:28:09
【问题描述】:

我使用 asp.net 创建了我的网站。我使用 ado.net 在我的数据库 (sqlserver 2005) 中执行插入、更新、删除功能。我的数据库被黑客攻击了。 我的表中的每条记录都是由这样的数据注入的

</title><style>.as9y{position:absolute;clip:rect(441px,auto,auto,441px);}</style><div class=as9y>secured <a href=http://5mincashadvance.com >payday loans</a></div>

所以请帮助我了解如何防止这种垃圾邮件注入..

这是插入函数的例子

myStatic.insertFields("Name, Phone, Mail, Title, Body", " U_Complaint", "'" + txtName.Text
            + "','" + txtPhone.Text + "','" + txtmail.Text + "','" + txtTitle.Text + "','" + txtBody.Text + "'");

所以这段代码有任何错误..如果不是什么问题..

【问题讨论】:

  • 您是否在将所有输入输入到 insertFields 之前对其进行了验证?如果没有,那么有一个有据可查的问题,称为 sql-injection。查看右侧的相关主题!
  • 这不是插入的实际代码。执行实际插入的代码是使用 SqlConnection、SqlCommand 等类的代码。对于初学者,您应该使用带有 SqlCommand 的参数来添加值。
  • 是的,我验证了我的输入。现在我正在更改我的代码。用于使用 sql-parameters 。我在我的网站上使用 ckeditor。如果我使用这个工具有任何问题
  • 任何人帮助我反跨站点脚本库的含义是什么以及我如何使用它来保护我的站点

标签: asp.net ado.net code-injection


【解决方案1】:

由于您使用的是 ckeditor,因此您获得的值是带有格式的 html,它被保存在您的数据库中。看这里http://dev.ckeditor.com/ticket/7892了解更多

【讨论】:

    【解决方案2】:

    不要在不使用sql参数而不是验证输入的情况下插入数据,以防止sql注入。

    这里是示例

    SqlCommand com=new SqlCommand("insert into table1 (columns1,columns2) values (@columns1,@columns2)",sqlCon);
    com.Parameters.AddWithValue("@columns",value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-12
      • 2019-11-01
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 2020-04-28
      • 2016-04-06
      • 2017-01-02
      相关资源
      最近更新 更多