常见Web安全漏洞及防范

分享三种常见的安全漏洞

输入输出验证不充分

输入输出验证

SQL注入

定义

SQL注入是SQL语句插入到传入参数的攻击,之后再将这些参数传递给SQL服务器加以解析并执行。

成因

代码中有拼接的SQL或HQL语句

危害
  • 拖库:导致数据丢失、数据窃取、数据破坏或拒绝服务
  • 提权:完全接管操作系统
防范

思路:预处理和参数化查询

  • 预处理和参数化查询PreparedStatement

使用相关的框架如Struts、Hibernate、Ibatis等

  • 执行严格的输入验证

使用正规表达式,严格检查输入的类型、长度和内容

跨站脚本攻击(XSS)

定义

跨站脚本攻击(XSS)通常是指攻击者利用网站程序对传入参数值过滤不足,输入可以显示在页面上对其他用户造成影响的HTML、JS恶意代码。

成因
  • 传入值验证不严格、用户能够控制传入值
  • 未经处理直接输出到客户端网页中
危害

劫持用户会话、插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器等。

防范

思路:数据在输出时转义编码处理

  • 输出编码(输出至客户端前进行编码)

输入验证或过滤(客户端及服务器端双向验证)

  • 严格输入验证:对用户输入的数据类型、大小、范围的验证,可避免输入危害的字符和冗余数据
  • 黑名单过滤

恶意文件上传

定义

恶意文件上传是指攻击者通过修改上传功能程序的参数内容,从而达到上传恶意文件的目的

成因

未对上传文件类型和格式做合法性校验,导致攻击者可以上传WebShell恶意文件(.asp,.war,.php,.jsp等)

危害

可以获取Web服务器的控制权

防范

思路:上传文件进行白名单过滤(只允许需要的)

  • 文件类型、大小检查
  • 下载时直接文件名引用

上传的文件以二进制形式下载,不提供直接访问

  • 上传目录禁止执行及独立保存位置

指定上传文件目录(此路径应该在Web服务器限制为只读,禁止执行),文件存储到独立的文件服务器或数据库中。

  • 随机改写文件名和文件路径,使不可猜测

逻辑设计缺陷

逻辑设计缺陷

业务逻辑漏洞

定义

业务逻辑漏洞是由于业务逻辑设计或流程设计不完整、不合理导致的业务相关的缺陷。

成因

业务逻辑漏洞是由于业务逻辑设计或流程设计不完整、不合理,客户端可以控制输入数据和流程、检查点

危害
  • 信息泄露、越权访问、账号窃取等
  • 一般是全局问题,可能比常规的安全漏洞更加严重
实例
  1. 资源耗尽

短信、邮件等如果没有限制发送次数就会产生拒绝服务攻击

  1. 注册送优惠券

手机用户注册可送优惠券,未限制每个手机次数

  1. 任意重置密码

密码找回的凭证太弱,如只需填入一个四位或者六位的纯数字就可以重置密码,导致可以暴力破解;

用户找回密码的邮箱或者手机号码被修改

  1. 绕过验证码

12306输入完验证码提交订单时必须要等待4.8秒,可绕过验证码

  1. 任意邮箱绑定

任意邮箱绑定账号(结合CSRF),验证码链接直接登陆。

防范

思路:业务流程需要有必要的控制参数,同时避免控制参数被绕过。

  • 防止绕过流程节点和检查参考(如token等)
  • 不需要用户操作或访问的数据避免发送到客户端(如验证码发送给客户端)
  • 验证所有输入(数字的边界、正负值等)
  • 防范资源消耗攻击(如短信等)、拒绝服务攻击(大规模数据查询,如搜索通配符)等

失效的身份认证

定义

身份认证功能存在设计缺陷或功能薄弱,这就导致攻击者绕过认证,窃取密码、密钥、会话令牌或利用实施漏洞冒充其他用户身份

成因

身份认证方式薄弱,如弱密码、无验证码等

逻辑设计缺陷导致可以重置任意用户密码

危害

绕过认证或窃取用户账户,特权账户会造成更大的破坏

防范

身份认证时第一道安全防线,身份认证需要防暴力破解、弱口令攻击。密码策略和验证码时互联网系统认证标配。

  • 密码策略

一般系统:8字符以上,且进行弱密码检查,并禁止包含用户名

重要系统:使用多种验证方式(如动态密码、短信等)

  • 首次登陆修改初始密码:首次登陆强制修改默认初始密码
  • 防密码暴力破解或猜解(或撞库):使用验证码登陆(如三次密码或账号尝试错误后出现)
  • 密码重置:验证旧密码或手机验证码
  • 邮箱/手机绑定:绑定操作需要用户确认(需要手工输入验证码)

越权操作

定义

越权操作指对系统进行超越自己权限的操作;

横向越权:非法获取同类用户权限

纵向越权:非法获取管理员或特权用户权限

成因

缺乏对用户权限的判断,及隐藏URL失效

危害

越权可造成非授权用户对所有数据、功能进行操作

防范

思路:用户全部请求进行权限检查

  • 验证每次请求(URL、数据资源)的用户权限
  • 参数随机化(避免可预测)
  • 管理后台加强认证和访问控制(如IP地址限制)

环境漏洞

环境漏洞.png

)]

第三方代码或组件

在使用第三方产品前,需要进行安全评估和版本筛选,从可信的网站(如官网下载),删除不必要的功能,并及时跟踪安全补丁。

API接口安全

接口安全认证

应对接口访问进行认证(服务器端分配API KEY),如使用Token/openid防范非法访问;IP白名单限制。

接口数据有效性检查

应对接口数据有效性进行检查,防范重放攻击和代码注入攻击。

接口数据加密传输

应使用数据加密、数字签名等方式保证数据保密性和完整性

接口访问权限及记录

应对接口的访问权限、访问频次进行控制,并记录接口访问的日志。

安全开发原则

永不信任用户输入

  1. 对用户输入的有效性检查
  2. 前端+后端双向验证
  3. 避免执行用户输入数据

最小攻击页面

  1. 最小权限
  2. 功能最小化(只实现需要功能)
  3. 输出最小化

纵深防御

  1. Web应用安全
  2. 操作安全
  3. 中间件安全
  4. 数据库安全
  5. 网络安全
  6. 客户端、移动APP安全
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 学习完整课程请移步 互联网 Java 全栈工程师 SQL 注入攻击 SQL 注入攻击,这个是最常聊到的话题,使用过...
    撸帝阅读 671评论 0 15
  • 没什么可抱怨的,都是自己的选择! 这几天过的混沌,内心也产生了些许自责,觉得不应该这样过日子,吃吃喝喝的,在家里做...
    春雨_373c阅读 48评论 0 0
  • 柳枝在发芽, 风儿在呢喃, 黄鹂鸟在歌唱, 漫天的春意在为我旋舞飞扬, 而我在想你 有没有在我想我。
    Singel行歌阅读 236评论 1 4
  • 如果人间有公平 我宁愿去死 化作神的影子 传播灵的种子 如果我渐输 我会遗忘我自己 因为渐输 败给了自己 败给了财...
    止儿徐子阅读 403评论 6 15