Web常见的安全漏洞有哪些?

分类:编程技术 时间:2024-02-20 15:48 浏览:0 评论:0
0
本文主要讲解“Web中常见的安全漏洞有哪些”。有兴趣的朋友不妨看一下。文章介绍的方法简单、快捷、实用。让小编带你了解“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.网址示例

例如:http://www.aa.com/account/login

?from=http://download.aa.com

用于跳转页面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常见的安全漏洞有哪些?》现在有了更深入的了解,不妨实践一下吧!这是网站。更多相关内容,您可以进入相关渠道查询。关注我们,继续学习!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Web常见的安全漏洞有哪些?

用户评论