Web常见的安全漏洞有哪些?
1.什么是SQL注入?
SQL注入是指在Web表单提交中插入SQL命令,或者在页面请求中输入域名或查询字符串,最终欺骗服务器执行恶意SQL命令。具体来说,它是利用现有应用程序将(恶意)SQL命令注入后端数据库引擎中执行的能力。它可以通过在Web表单中输入(恶意)SQL语句来获取存在安全漏洞的网站上的信息。数据库,而不是按照设计者的意图执行 SQL 语句。
2.如何注射?
示例:http://test.com/info?id=1
此 URL 返回ns 数据库中某个表的1条数据。程序中可能这样写,ID就是传入变量:
select * from user where id='"+id+" ';
如上,那么查询语句将是
p>
select * from user where id = '1'
If id= 1'或 '1'='1,则查询语句为
select * from user where id = '1' or '1'='1'
3 。 SQL注入原因
①提交的数据未经过滤 p>
②组装SQL语句
③类型处理不当
4. SQL注入防御
(1)字符串长度验证
只接受指定长度范围内的变量值。 SQL注入脚本不可避免地会大大增加输入变量的长度。通过长度限制,例如用户名的长度在8到20个字符之间。如果超过长度,将被判断为无效值。
(2)转义单引号和双引号ble“-”、下划线、百分号等SQL注释符号
(3)不使用动态汇编SQL,使用参数化SQL进行数据查询和访问
代码示例:
String sql = "select id, no from user where id=?";
PreparedStatement ps
= conn.prepareStatement(sql);
PreparedStatement ps
= conn.prepareStatement(sql);
PreparedStatement ps
= conn.prepareStatement(sql);
>
ps.setInt(1, id);
ps.executeQuery();
(4)框架防御:mybatis
①#符号函数将传入的数据视为字符串,并会为自动传入的数据添加双引号。
例如:where user_id= #{id}
如果传入的值为111,那么解析成sql时的值为where id ="111"
< p>如果传入的值为1'=或'1'='1',则解析出的sql为whereid "1'=or '1'='1'"②$符号传入的数据直接在sql中生成。
例如:where user_id= '${id}'
如果传入的值为111,那么解析成sql时的值为where id ='111'
p >
如果传入的值为1'=或'1'='1',解析出的SQL为where _id ='1'或'1'=1'
结论:#符号可以防止SQL注入,而$符号不能防止SQL注入。 $符号一般用于传入数据库对象,如表名
XSS
1.什么是XSS?
在网页中插入恶意 HTML 代码。当用户浏览页面时,嵌入Web中的HTML代码就会被执行,从而达到恶意攻击用户的特殊目的
2。 XSS分类
(1)持久性XSS(存储在服务器端,攻击行为会随着攻击数据一直存在)
(2)非持久性XSS(一次性,仅影响当前页面访问)
示例:向页面输出传递参数
参数写法:index?value=
页面及JS编写方法:
| $('#xss'). html(value);3、XSS危害
执行仲裁稀有的 JS 代码。最常见的方法是获取COOKIE认证信息;还有的就是跳转到恶意URL等,或者配合CSRF漏洞创建表单并提交,强制当前用户进行操作,比如发帖、删帖、甚至转账等。
4. XSS防护
(1)过滤用户输入的内容,最常见的是过滤',",;,<,>
(2)当用户提交数据,数据被编码。
(3)页面输出时,数据被编码。
CSRF
p>< strong>1.什么是CSRF?
虚假请求,冒充用户在网站上的正常操作
2.CSRF攻击原理
请输入图片描述
3. CSRF危害
攻击者窃取用户身份可用于发送电子邮件、发送消息、购买商品、银行转账以及用户可以执行的其他操作。
4。如何防御CSRF
(1)验证HTTP Referer字段
这个方法是一个基本的防御。目前Referer可以被重写和伪造,并不是绝对安全。
(2)HTTP添加自定义参数验证
会话中存储一份服务器生成的token ,一份放在前端隐藏字段中,与请求头一起提交。 B不访问A网站前端拿不到token,请求无法通过。验证达到防御目的。
URL跳转漏洞
1.什么是URL跳转漏洞?
经常在程序中发现重定向页面,在登录系统时会根据URL中的参数进行重定向,从而使用户跳转到登录后上一页。
2.网址示例 p>
例如:http://www.aa.com/account/login
?from=http://download.aa.com p>
用于跳转页面e 不判断是否是当前站点的页面或者是否是允许的页面地址。当恶意攻击者将地址更改为:
http://www/aa.com/account/login
?from=http://www.bb.com/< /p>
那么用户登录后就会跳转到www.bb.com,如果是恶意URL,那么用户就会成为受害者。
3.在URL中传递session的危险
从跳转到的页面中的HTTP请求头中很容易获取URL中的session。价值。对于会话中的验证信息没有与用户客户端信息绑定的情况,攻击者可以直接利用它来成为之前用户的身份。
4. URL跳转漏洞防护
(1)可确定URL:配置对应的索引文件,通过索引找到对应的具体URL,然后跳转Redirect
(2)未确定URL:添加规则验证,先通过验证
至此,相信大家都已经熟悉了《Web常见的安全漏洞有哪些?》现在有了更深入的了解,不妨实践一下吧!这是网站。更多相关内容,您可以进入相关渠道查询。关注我们,继续学习!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Web常见的安全漏洞有哪些?