web安全学习-验证机制存在的问题

验证机制是应用程序防御恶意攻击的中心机制。它处于防御未授权的最前沿,如果用户能够突破那些防御,他们通常能够控制应用程序的全部功能,自由访问其中的数据。缺乏安全稳定的验证机制,其他核心安全机制(如回话管理和访问控制)都无法有效实施。

web应用程序常用的验证机制有:

1)  基于HTML表单的验证(最常用)

2)  多元机制,如组合型密码和物理令牌

3)  客户端SSL证书或智能卡(成本非常昂贵)

4)  HTTP基本和摘要验证(内网使用较多)

5)  使用NTLM或Kerberos整合windows的验证

6)  验证服务

接下来说一下,在验证机制中可能存在的一些问题。一共分为两个个方面进行说明,分别为设计缺陷和执行缺陷

验证机制的设计缺陷:

1)  密码保密性不强:使用非常短或空白的密码,已常用的字典词汇或名称为密码,密码和用户名完全相同,依然使用默认密码,存在这些情况容易导致暴力破解。

 

2)  蛮力攻击登陆(允许攻击者使用不同的密码重复进行登陆尝试)

 

3)  详细的失败信息(显示是用户名或者密码错误,攻击者可以轻易的确定有效的用户名作为随后攻击的基础)

通过详细的失败信息可以枚举用户名,然后根据用户名去猜测密码。

4)  证书传输易受攻击(使用非加密的HTTP连接,应用程序处理证书的方式不安全)

进行一次成功登陆,监控客户端和服务器之间的所有来回流量,确定在来回方向上传输证书的每一种情况,如果发现通过URL字符串或者cookie的方式提交证书,想法弄清楚开发者这样做的目的。同时使用HTTP协议或者查询字符串传递都是不安全的。

5)  密码修改功能(允许详细的错误信息,说明被请求的用户名是否有效,允许攻击者无限制猜测现有密码字段,在验证现有密码后,仅检查新密码与确认密码)

使用无效的用户,无效的现有密码及不匹配的“新密码”和“确认密码”值向密码修改功能提交各种请求,设法确定任何可用于用户名枚举和暴力攻击的行为。

6)  忘记密码功能

用户名枚举,质询响应问题

7)  记住我功能

记住我功能通过简单的cookie执行,可能造成推测出其cookie值从而避免登陆

8)  用户伪装功能(造成垂直提权等功能)

9)  证书确认不完善(截断密码,只确认前n个字符,不对密码进行大小写检查,删除不常用的字符)

10) 非唯一性用户名(枚举,泄露另一个账户的密码)

11)  可预测用户名

12)  可预测初始密码

13)  证书分配不安全(通过邮件或者邮寄密码,激活URL表现出某种顺序)

 

验证机制执行缺陷:

1)故障开放登陆机制(逻辑缺陷,

 

 

2)多阶段登录机制中的缺陷

一些应用程序使用精心设计的多阶段登录机制,例如输入用户名和密码,响应一个质询,答案是pin中的特殊数字或一个值得纪念的词,提交在不断变化的物理令牌上显示的某个值。

3)不安全的证书存储

以明文存储证书

 

上面输了验证机制中可能存在的一些问题,下面来说一下如何保障验证机制的安全,

在设计安全机制的时候,需要考虑以下的因素:

应用程序所提供功能的安全程度

用户对不同类型的验证控制的容忍和接受程度

支持一个不够友好的用户界面系统所需的成本

竞争性解决方案相对于应用程序可能产生的收入方面的金融成本或它所保护资产的价值

具体方法如下:

1)  使用可靠的证书(强密码,唯一的用户名,随机)

2)  安全处理证书(使用HTTPS加载登录表单)

3)  正确确认证书

4)  防止信息泄露

5)  防止蛮力攻击

6)  防止滥用密码修改功能

7)  防止滥用账户恢复功能

8)  日志,监控与通知

 

转载于:https://www.cnblogs.com/yonghegn/p/9397450.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES5-拓展 原型链、继承、类

Symbol不是构造函数 Object不是原型是实例对象 他的构造器继承原型上的构造器 undefined是未定义 null是空指针 一、原型链 1. 函数也是实例对象 2. 构造函数Object是由Function构造出来的 3. 有一种说法是,原型链的终点是null Object.prototype.__proto__指向nul…

Mysql中各种与字符编码集(character_set)有关的变量含义

mysql涉及到各种字符集,在此做一个总结。 字符集的设置是通过环境变量来设置的,环境变量和linux中的环境变量是一个意思。mysql的环境变量分为两种:session和global。session变量是仅在这次会话红中有效,在mysql中,一次…

spring boot 加载application配置文件

这就要注意了 转载于:https://www.cnblogs.com/huochaihe/p/9397849.html

javascript --- 防抖与节流

先做一个监听鼠标移动的base: <style>#content{height:150px;width:200px;text-align:center;color:#fff;background-color:#ccc;font-size: 70px;} </style> <div id"content"></div> <script>let content document.getElementById…

DOM-9 【实战】模块化开发Todolist(面向过程)

模块化分类 按dom结构划分按功能划分&#xff08;组件化开发&#xff09; 模块与模块之间可以相互依赖&#xff0c;但互不影响 模块&#xff1a;IIFE赋值给一个变量&#xff0c;当引入模块时&#xff0c;IIFE会立即执行 单标签闭合才符合W3C规范display、position放在上面css是…

mysql在linux下的安装(5.7版本以后)

1.添加mysql组和mysql用户&#xff0c;用于设置mysql安装目录文件所有者和所属组。 ①groupadd mysql ②useradd -r -g mysql mysql 2.将二进制文件解压到指定的安装目录&#xff0c;通用的/usr/local ①解压二进制文件&#xff0c; tar -zxvf /usr/local/mysql-5.7.13-linux-…

Kali Linux2018 上安装open-vm-tools实现虚拟机交互

最新的kali linux2018已经不再支持原有的vmwaretools&#xff0c;即使安装了也不能实现主机与客户机之间的交互&#xff08;比如从主机复制文件到客户机&#xff09;。安装open-vm-tools替代vm tools能够完美实现“自动适应客户机”&#xff08;即自动适应客户机的分辨率&#…

DOM-11 【兼容】鼠标行为坐标系、pageXY封装、拖拽函数封装

鼠标行为 e.属性含义相关属性clientX/Y鼠标位置相对于当前可视区域的坐标x/y&#xff08;FF火狐部分版本不支持&#xff09;pageX/Y(IE9以下不支持)鼠标位置相对于当前文档的坐标layerX/Y (IE11以下同clientX/Y)screenX/Y鼠标位置相对于显示器屏幕的坐标offsetX/Y鼠标位置相对…

java --replaceAll方法

public void abc(){String str "aabbccdd";str str.replaceAll("\\d","数字")&#xff1b;system.out.println("str"); } 转载于:https://www.cnblogs.com/gjack/p/8325778.html

mysql分页优化

一般分页这样写 select * from goods limit 50,20 从50行开始取20行&#xff0c;即第51行到70行 当数据量少当时候这样并没有什么问题&#xff0c;但是如果 select * from goods limit 1000000,20 查询耗时骤升。 这种方式是查询出100000020行&#xff0c;再取20行&#xff0c;…

DOM-10 面向对象开发Todolist

将插件配置项写在html的div里&#xff0c;data-config自定义属性&#xff0c;外单引号&#xff0c;内双引号&#xff08;内部是JSON字符串&#xff09; <div class"todo-wrap" data-config{"plusBtn":"j-show-input","inputArea":…

计网 --- 域名服务系统:因特网的目录服务

主机名: // 主机的一种标识方法如: cnn.com www.yahoo.com gaia.cs.umass.edu cis.poly.edu主机名可能由不定长的字母数字组成,路由器难以处理.由于这些原因, 主机也可以使用IP地址(IP address) 进行标识 // 简略介绍ip地址 // 一个IP地址由4个字节组成,并有着严格的层次结构…

Ansible基础概述

一、Ansible简介 Ansible基于Python语言实现&#xff0c;由paramiko和PyYAML两个关键模块构建。Ansible的编排引擎可以出色地完成配置管理&#xff0c;流程控制&#xff0c;资源部署等多方面工作。Ansible公司负责Ansible开源软件的维护&#xff0c;管理。一般软件的更新大概每…

selenium浏览器驱动下载地址整理

今天把手头有的一些关于selenium测试的资源整理了一下&#xff0c;分享出来。 1. 所有版本chrome下载 是不是很难找到老版本的chrome&#xff1f;博主收集了几个下载chrome老版本的网站&#xff0c;其中哪个下载的是原版的就不得而知了。 http://www.slimjet.com/chrome/google…

DOM-12 【模拟桌面待讲评】鼠标事件深入、点击与拖拽分离、双击事件

鼠标事件深入 点击事件 mousedown mouseupposition: absolute 会将内联元素变为块级&#xff08;比如a&#xff09;a标签的协议限定符&#xff08;伪协议&#xff0c;防止跳转和刷新&#xff0c;让href不生效&#xff09;&#xff0c;javascript:;&#xff0c;可以让点击和拖…

scrapy的操作

转载于:https://www.cnblogs.com/mengqingjian/p/8337772.html

http --- HTTPS是在安全的传输层上发送的HTTP

HTTPS: // HTTPS是最常见的HTTP安全版本 // 是在安全的传输层上发送的HTTP// 将HTTP报文发送给TCP之前,先将其发送给了一个安全层(通过SSL协议实现),对其进行加密.然后再发送给TCP // 在服务器端,通过提取商量好的密钥进行解密HTTPS方案: // 对Web服务器发起请求时,需要有一种…

Devexpress xaf针对某个用户登录后在面板中设置导航无效的解决方法

Devexpress xaf框架生成的项目默认情况下导航栏是显示在左侧&#xff0c;有时候我们用某个账户登录后&#xff0c;发现导航栏无法显示在左侧&#xff0c;操作十分不方便。我们可以去数据库删除当前登录用户的自定义布局 解决方法如下: 1、查询PermissionPolicyUser用户表&#…

DOM-13 【实战】输入及状态改变事件、京东搜索框

模块化 IIFE window.onload function () {init() }function init() {keySearch()others() // 多人开发的模块 }var keySearch (function () {var searchKw document.getElementById(J_search_kw),autoKw document.getElementById(J_autoKw),recomKw JSON.parse(document…

吴恩达“机器学习”——学习笔记二

定义一些名词 欠拟合&#xff08;underfitting&#xff09;&#xff1a;数据中的某些成分未被捕获到&#xff0c;比如拟合结果是二次函数&#xff0c;结果才只拟合出了一次函数。 过拟合&#xff08;overfitting&#xff09;&#xff1a;使用过量的特征集合&#xff0c;使模型过…