OWASP 十大漏洞解释
1. SQL 注入1. SQL 注入1. SQL 注入
原则:
SQL注入意味着Web
该应用程序不会过滤或确定用户输入的数据的有效性。前端传递的参数是攻击者可以控制的,并且可能允许攻击者构造恶意SQL。
一条语句来实现对数据库的任何操作。
分类:
1.插入错误
2.布尔注入
3.延迟注射
4. 宽咬合注射
防御:
1.使用预编译语句和绑定变量
2.使用存储过程
3.使用安全功能
4.检查数据类型
2. 无效ID认证及会话管理2. 无效ID认证及会话管理2. 无效ID认证及会话管理
原则:
在开发Web 应用程序时,开发人员通常只关注Web 应用程序所需的功能,因此构建自定义身份验证和会话方案。然而,这些解决方案很难正确实施。这会导致注销、密码管理、超时、密码检索、帐户更新等方面存在漏洞。
防御:
1.区分公共区域和限制区域。
2. 对最终用户帐户使用帐户锁定策略。
3.支持密码过期。
4. 能够禁用帐户。
5.不要保存用户密码。
6. 需要强密码。
7. 不要通过互联网以明文形式发送密码。
8. 安全身份验证cookie。
9. 使用SSL 保护会话身份验证cookie。
10. 加密身份验证cookie 的内容。
11. 限制会话生命周期。
12. 避免未经授权访问会话状态。
3. 跨站脚本攻击(XSS) 3. 跨站脚本攻击(XSS) 3. 跨站脚本攻击(XSS)
XSS是一种跨站脚本攻击,攻击者可以在存在XSS漏洞的网站中输入恶意HTML代码,然后在其他用户查看该网站时自动执行该HTML代码,从而达到攻击的目的。
分类:反射型(非持久性)XSS、保留型(持久性)XSS、DOM 型XSS。
不同之处:
DOM XSS、反射型XSS、存储型XSS的区别在于,DOM XSS代码不需要服务器参与,依赖于浏览器端DOM解析。这完全是一个客户问题。
预防:
1. 使用XSS过滤器(跨站脚本过滤器)来分析用户提交的输入,过滤掉可能的脚本攻击、恶意THML或简单的HTML格式错误。
2. 输入过滤
输入是否仅包含有效字符。
输入字符串是否超过最大长度限制。
如果输入的是数字,则判断该数字是否在指定范围内。
输入是否满足特殊格式要求,例如电子邮件地址、IP 地址等。
3. 输出编码
(小于号)转换为lt。
(大于号)转换为gt。
(& 符号)转换为amp。
\’ (双引号)转换为quot;
\’(单引号)转换为#39;
4. 黑名单和白名单
5、内容安全策略(CSP):CSP用于限制浏览器查看页面,使浏览器只能使用从可信来源下载的资源。
4. 直接引用不安全对象4. 直接引用不安全对象4. 直接引用不安全对象
意义:
不安全的直接对象引用(IDOR)允许攻击者通过更改指向对象的隐私文件中的参数值来绕过网站的身份验证机制,例如可以直接访问属于其他用户的数据库条目或服务器。系统等
发生原因:
Web应用程序在生成网页时往往使用实名,并且在访问所有目标对象时不检查用户的权限,从而产生不安全的直接对象引用漏洞。
服务器上的某些文件名、路径和数据库关键字等内部资源可能会在URL 或网页中公开,从而允许攻击者尝试直接访问其他资源。
防御措施:
1、采用基于用户或会话的间接对象访问,防止攻击者直接攻击未授权的资源。
2. 访问检查:对来自不受信任来源的所有对象执行访问控制检查。
3. 避免在URL 或网页中直接引用内部文件名或数据库关键字。
4. 检查用户输入和URL请求并拒绝包含./…/的请求。
5. 安全设置错误5. 安全设置错误5. 安全设置错误
意义:
安全配置错误可能发生在应用程序堆栈的任何级别。通常是由不安全的默认配置、不完整的临时配置、开源云存储和格式错误的HTTP 引起的。
包含标头设置和敏感信息的详细错误消息。
影响:
攻击者可以通过访问未修补的漏洞、默认帐户、过时的页面、未受保护的文件和目录等,对您的系统进行未经授权的访问或了解您的系统。
防御措施:
1.配置所有安全机制
2.最低限度原则,关闭或限制不使用的服务
3.更改默认账户信息
4. 使用日志和警报
5.回显信息不显示任何与实际错误相关的信息。
6.检查并修复安全配置项
6. 机密信息泄露6. 机密信息泄露6. 机密信息泄露
漏洞描述:
机密信息可能因各种原因而泄露,包括泄露给管理员和技术人员。许多网络应用程序和应用程序未能充分保护敏感数据,从而导致攻击者窃取或修改未加密的数据,从而实施信用卡欺诈、身份盗窃和其他犯罪行为。敏感数据(例如传输中的数据、静态数据和浏览器交互数据)必须加密,因为未加密的敏感数据很容易被损坏。
检测方法:
1、人工开采。检查Web容器或网页的源代码。可能包含机密信息。例如,访问某个URL下的目录,会直接显示该目录下的文件列表,错误消息中会包含网站的信息。
2、工具挖掘:爬虫等工具可以扫描敏感文件路径来查找敏感数据。
预防:
1. 对系统处理、存储或传输的数据进行分类,并根据分类进行访问控制。
2. 加密您的敏感信息的传输和存储
3、强化安全意识
7. 缺乏功能级访问控制7. 缺乏功能级访问控制7. 缺乏功能级访问控制
原则:
大多数Web 应用程序功能在显示在UI 页面上之前都会验证功能级权限。但是,应用程序每次访问该功能时都必须在服务器端执行相同的访问控制检查。如果请求未经身份验证,攻击者可以伪造该请求并在未经适当授权的情况下获取对功能的访问权限。
测试方法:
1.验证合法授权用户是否成功访问
2. 限制未授权/未授权用户的访问
防御措施:
1. 每个请求和URL 都必须经过验证并检查权限,以避免欺诈请求。
2. 访问每个功能需要明确的角色权限,并使用过滤器来验证每个请求的合法性。
3. 对Web访问实施IP白名单,防止不受信任的IP访问您的Web系统。
8. 跨站点请求伪造(CSRF) 8. 跨站点请求伪造(CSRF) 8. 跨站点请求伪造(CSRF)
CSRF概念:
CSRF跨站请求伪造(跨站请求)
与XSS 攻击一样,伪造是极其有害的。攻击者窃取了您的身份并以您的名义向您的服务器发送恶意请求。这个请求是完全合法的,但是操作已经完成。他们进行预期的攻击,例如以您的名义发送电子邮件或消息、窃取您的帐户、添加系统管理员,甚至购买商品或转移加密货币。
它将如下。 Web A是存在CSRF漏洞的网站,Web B是攻击者构建的恶意网站,用户C是Web A网站的合法用户。
攻击原理:
CSRF攻击的原理和流程如下:
1、用户C打开浏览器,访问可信网站A,并输入用户名和密码请求登录网站A。
2、用户信息验证通过后,A网站生成cookie信息并返回给浏览器。此时,用户可以成功登录A网站,并成功向A网站发送请求。
3、用户退出A网站前,通过同一浏览器打开TAB页面访问B网站。
4、B网站收到用户请求后,返回恶意代码,并向第三方网站A发送访问请求。
五。
浏览器收到这些恶意代码后,会在用户不知情的情况下向A网站发送请求,并携带Cookie信息来响应B网站的请求。网站A并不知道该请求实际上是由B发起的,因此它根据用户C的cookie信息以C的权限来服务该请求,并且来自网站B的恶意代码将被执行。
分类:
GET 和POST 类型。
防御的意思是:
1. 检查HTTP Referer字段。
根据HTTP协议,HTTP头中有一个名为Referer的字段,记录了HTTP请求的源地址。
2. 在请求地址中添加并验证token。
将随机生成的token(随机字符串)以参数的形式添加到HTTP请求中,并建立拦截器在服务器端验证该token。该请求可能不包含令牌,或者令牌的内容可能不正确。这可能是CSRF 攻击,并且会拒绝请求。
3.二次验证
进行转账等重大操作前,请输入当前用户的密码或验证码。两步验证可以有效防御CSRF攻击。
9. 使用具有已知漏洞的组件9. 使用具有已知漏洞的组件9. 使用具有已知漏洞的组件
原则:
大多数开发团队并不关心组件或库的及时更新,也不关心组件或库的版本。然而,使用具有已知漏洞的组件的应用程序可能会削弱应用程序防御系统并造成严重后果。或者服务器劫持。
防御措施:
1. 确定使用的所有组件和版本,包括所有依赖项。
2. 不时关注这些组件的安全信息并确保它们是最新的。
3、建立组件使用时的安全策略,禁止使用未经安全评估的组件。
4. 安全封装组件,精简不必要的功能,并根据需要封装薄弱区域。
10. 未经验证的重定向和转发10. 未经验证的重定向和转发10. 未经验证的重定向和转发
重定向:
重定向意味着服务器根据逻辑发送状态代码(通常为3xx),告诉浏览器再次请求该地址。因此,新的URL 将出现在地址栏中。 (重定向是在客户端完成的)
向前:
转发是指将请求转发到服务器内的另一个资源,读取该URL 处的响应内容,并将该内容发送到浏览器。因为这个跳转,浏览器不知道服务器发送的内容来自哪里。由于转发过程是在服务器上实现的,而不是在客户端上实现的,所以客户端感知不到这个跳转动作,地址栏仍然是原来的地址。 (传输是在服务器端完成的)
两者的区别:
1、重定向是指浏览器向服务器发送请求,收到响应后将请求发送到新的地址。 转发是指服务器收到请求后跳转到新的地址完成响应。
2.重定向有2个请求,不共享数据,转发有1个请求,共享数据。
3. 重定向后,地址栏会发生变化,但转发保持不变。
4、重定向地址可以是任意地址,但转发地址只能针对当前应用类。
笔记:
1. 重定向外部网站时,您需要检查该网站是否在您的白名单中。
2. 转让内部网站需要检查是否有权限。只有在您获得许可的情况下,我们才会转发。
网络安全入门学习路线
事实上,网络安全入门不需要学太多东西。也就是说,四个流程几乎是一样的:网络基础+操作系统+中间件+数据库。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91962.html