新睿云

> 知识库 > 全网最全的网站攻击手段科普,我们应该如何防御?——SQL注入篇

全网最全的网站攻击手段科普,我们应该如何防御?——SQL注入篇

作者/来源:新睿云小编 发布时间:2019-10-09

一、SQL注入

SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

全网最全的网站攻击手段科普,我们应该如何防御?——XSS篇

全网最全的网站攻击手段科普,我们应该如何防御?——CSRF篇

全网最全的网站攻击手段科普,我们应该如何防御?——SQL注入篇

全网最全的网站攻击手段科普,我们应该如何防御?——DDoS与DNS劫持完结篇

SQL注入

二、防止SQL的方法

1. 过滤URL中的一些特殊字符,动态SQL语句使用PrepareStatement..

-注入的方式就是在查询条件里加入SQL字符串.可以检查一下提交的查询参数里是否包含SQL,但通常这样无益.

2.最好的办法是不要用拼接SQL字符串,可以用prepareStatement,参数用set方法进行填装

-sql注入形式:...where name="+name+",这样的sql语句很容易sql注入,可以这样:

jdbcTemplate.update("delete from userinfo where id=? and userId=?", new Object[]{userInfo.getId(),userInfo.getUserId()});

我的一些代码,望有用!

-Sql注入漏洞攻击:如1'or'1'='1

3.使用参数化查询避免

cmd.CommandText="select count(*) from表名whereusername=@aandpassword=@b";

cmd.parameters.Add(new SqlParameter("a",".."));

cmd.parameters.Add(new SqlParameter("b",".."));

-恩,用框架,用jpa的pojo。。就没这种事情了

4.SSH2架构中怎么防止SQL注入呢?还有其他相关安全问题怎么设计呢?

目前的安全,只是对用户密码加密,前台jquery验证。

如何实现防止注入攻击还有我的页面有些隐藏域保存这当前登录用户的信息等信息。

用户查看页面源代码就可以查看到了。

5.有没好的解决方案呢?还有其他哪些要注意的地方呢?

Struts2 hibernate3 spring 3.0

sql server 2000 sp4

1:向CA购买证书,使用HTTPS进行通信,以保证在网络传输过程中是安全的

2:避免XSS注入(页面回显的input text, input hidden均过滤<、>、"、'等字符等)

3:使用随机键盘或者安全控件防止键盘木马记录用户的输入

4:若要在Cookie中写入数据,尽量使用Cookie的HttpOnly属性

5:响应中设置一些诸如X-Frame-Options、X-XSS-Protection等高版本浏览器支持的HTTP头

6:不管客户端是否做过数据校验,在服务端必须要有数据校验(长度、格式、是否必填等等)

7:SQL语句采用PreparedStatement的填充参数方式,严禁使用字符串拼接SQL或者HQL语句

热门标签
new year
  在线咨询
资讯热线
400-0505-565
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待