web应用常见安全问题

注册、登陆需防范的问题

注册、登陆编码建议

多因素认证

口令策略

非弱口令定义与使用习惯

项目上线注意事项

预防文件操作

文件安全编码规范

注入漏洞类型

注入漏洞防范方法

权限校验问题

权限校验问题解决方案

跨站脚本漏洞

  • 重放数据包无限请求
  • 用户名枚举
  • 登陆认证绕过
  • 验证码爆破、重放、可控
  • 短信、邮箱轰炸
  • 邮箱篡改
  • 任意用户注册
  • cookie仿冒
  • 会话固定
  • 验证码不得低于6位
  • 验证码验证后立马失效
  • 手机、邮箱注册用户需要验证码
  • 所有登陆界面都需要验证码
  • 所有校验必须在后端
  • 不论用户存在与否不回显明确信息
  • 积分、优惠券等操作限制次数防止重放
  • 限制短信、邮件的发送频率
  • 业务流程的每一步都需要进行身份验证
  • 图形验证码需要变形干扰增加复杂度
  • 交易操作严格校验数据防止溢出或负数值
  • Cookie中不存放敏感信息,不同会话使用不同Cookie
  1. 位置因素:常登陆的IP地址、地理位置等
  2. 生物特征因素:语言、指纹、面部特征、虹膜等
  3. 口令密钥:密码、PIN码、TAN码(交易验证码)、密钥等
  4. 拥有因素:身份证、钥匙、U盾、磁卡、安全令牌、智能手机等
  1. 规定口令策略,强制验证用户输入口令的强度
  2. 测试账号、默认账号不使用弱口令,系统默认账号需要一人一密
  3. 登陆错误次数限制、登陆界面设置验证码,且验证码不易识别,不能被绕过
  4. 维护一张弱口令表,弱口令表中的口令禁止使用
  5. 数据库密码存储应该不可逆,采用存储hash值的方式
  1. 密码长度不低于8位,密码必须含有字母大小写数字和特殊字符
  2. 不使用有规律的密码,如:1qaz@WSX、123!@#qwe、P@ssW0rd等
  3. 不同网站需要使用不同密码
  4. 不将密码写在记事本、便条或明文保存在电脑中
  5. 不使用姓名、生日、工号等明显信息作为密码
  6. 避免使用浏览器记住密码功能

注:在此基础上可以增加密码使用期限,如一段时间内需修改一次密码等方式加强口令策略

  • 不暴露任何用户不需要的信息
  • 网站部署注意隐藏源码信息
  • 下线的功能、接口,需前后端同步删除
  • 网站日志需要写入用户无法访问的目录
  • 程序发生错误需要有统一的错误处理页面
  • 物理路径、系统版本等信息需要进行保护
  • 网站的备份文件不能存放在用户可访问目录
  • 前端代码需要进行混淆或者压缩处理,不留注释信息
  • 敏感信息如手机号,身份证号,银行卡号隐藏显示
  • 控制好源代码信息公司代码上传到github等平台
  • 文件上传:上传可执行代码文件、上传前端静态文件、覆盖重要文件
  • 文件下载:下载系统配置文件、下载系统源码、下载敏感信息文件
  • 文件修改:破坏系统重要文件、修改系统源码、修改系统配置
  • 文件删除:删除系统重要文件、删除安装锁定文件

文件上传

  1. 类型判断:根据扩展名判断、使用白名单进行校验、严禁完全依赖文件头和ContentType
  2. 重命名:防止文件名的截断、使用GUID等随机文件名、避免文件路径的回显
  3. 不解析:上传至单独的文件服务器、上传至用户无法直接访问或者不解析目录

文件下载

  1. 文件ID操作:通过文件ID读取路径进行下载
  2. 数据过滤:通过过滤“../”等特殊字符防止目录穿透
  3. 类型判断:判断文件扩展名,尽量使用白名单
  4. 权限校验:对WEB权限进行校验,采用最小权限原则
  1. SQL注入
  2. OS命令注入
  3. XML实体注入
  4. LDAP注入
  5. Xpath注入
  • 注入漏洞是通过欺骗解释器来进行攻击的,能够做到任何解释器能够做到的内容
  • 注入漏洞是常年漏洞榜首,特别是SQL注入漏洞,业务中离不开和数据库的交互,也就大大提升了SQL注入发送的概率
  1. 在使用原生JDBC时能够使用参数化查询的位置必须进行参数化查询
  2. 使用orm框架严格按照开发标准,自定义sql语句需要进行参数化查询
  3. 严禁直接使用dba权限账户作为网站数据库账户
  4. 限制用户的输入,如果明确参数类型,需要对参数进行格式化
  5. 只能采用过滤的方式尽量采用白名单,黑名单很可能被绕过
  6. 数据的二次使用也需要注意注入问题
  7. 避免向客户端响应详细的错误消息,防止攻击者里有报错信息来判断后台SQL的拼接形式
  • 未授权访问:某些系统或者某些功能点,没有经过身份认证可直接被访问者使用,如果系统中存在敏感数据很可能造成数据泄露
  • 垂直越权:虽然对用户身份进行了认证,但是在用户角色使用权限上没有进行严格划分,导致低权限用户可以使用高权限用户的功能
  • 水平越权:用户角色或者身份已经经过验证,但是同一角色之间的用户在数据访问上未做限制,导致可以访问其他用户信息
  • 未授权访问:核查系统或组件的默认配置是否进行身份认证;不引入不安全的配置、导致身份认证失效、开发测试环境同样需要身份认证;API接口同样需要全面的身份认证
  • 垂直越权:基于角色的权限控制(RABC);建立统一的权限控制功能,可以通过url、接口等形式;统一身份认证系统需要对用户角色权限进行控制
  • 水平越权:查询和用户相关的信息需要与用户身份进行关联;敏感信息的唯一标识需要足够随机化

定义:跨站脚本漏洞,又名XSS漏洞,程序开发的工程中对用户输入的数据未做过滤、使得恶意攻击者可以往Web页面里插入恶意js脚本代码、当用户浏览存在恶意脚本的页面时,恶意脚本执行窃取了用户敏感信息

编程建议:ESAPI(OWASP Enterprise Security API)是一个免费开源的,web应用程序安全控制库

原文链接:https://blog.csdn.net/qq_39560975/article/details/126868545

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18071

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml