用于互联网服务的系统安全性是至关重要的。在过去的2018年,发生了多起用户信息泄密事件,其中不乏著名的互联网公司,攻击者都是利用系统漏洞获取用户的账号和密码,从而进一步获取用户的信息。

什么是系统漏洞?系统漏洞是指系统存在的缺陷,攻击者可以利用系统的这些缺陷来进入系统内部,获取系统的控制权,窃取系统的数据。例如在我们设计的系统中,如果设计的用户登录密码长度过小或复杂度过低时(密码长度小于6位,密码仅由数字组成),攻击者就会在较短的时间内暴力破解用户的登录密码,从而窃取用户信息。这就是一个系统潜在的漏洞。

系统漏洞是从哪里来的呢?系统漏洞主要来自于操作系统和运行于操作系统之上的应用软件。

操作系统就是我们常用的Windwos、Linux等系统,这些系统自身也会存在漏洞,操作系统存在的漏洞对系统安全的危害是巨大的,当攻击者利用操作系统的漏洞进入操作系统后,他就有可能获得系统管理员的权限,并利用系统管理员权限的身份获得应用软件的控制权。例如攻击者可以利用系统管理员的身份登录数据库管理系统,获得数据库的管理权,可以任意读写数据库的内容。要防范操作系统自身存在的漏洞,就需要随时关注操作系统生成厂商发布的系统补丁信息,及时打好操作系统的补丁。

操作系统产生的系统漏洞我们是无法防护的,但我们自己设计和研发的系统是可以进行漏洞防护的。如前面的用户登录漏洞,我们完全可以将密码长度设置到8位以上,要求密码为字母和数字组合,也可以限制密码输错次数,这些都是有效的漏洞防范措施。

在设计一个系统时,我们需要注意防范哪些系统漏洞呢?下面主要从技术方面说说需要防范的系统漏洞。从技术方面防范的系统漏洞主要有用户访问控制、SQL注入、跨站点脚本攻击、异常错误处理、DoS攻击、不安全的数据存储、不安全的数据传输。

用户访问控制

用户访问控制包括用户登录、用户访问权限的控制。用户登录最好采用双因子登录认证,现在一般常用的双因子登录技术是登录账号密码和验证码认证,验证码可以采用图形验证码或手机验证码。用户登录系统后,应根据系统需要来限制用户的访问权限。例如普通用户不能访问后台管理页面等等。

SQL注入

SQL注入是最常见和最容易使用的一种攻击系统的方式,它主要是在用户提交的表单中嵌入SQL语句来攻击系统。例如在一个用户登录页面中,要求用户输入登录账号和密码,攻击者可能会在账号输入框中输入“’or 1=1#”,密码可以不输入,如果后台的表单处理代码只是简单拼SQL串的话,SQL代码大致如下:

select * from user where username=‘'or 1=1#' and password=md5('')

上面的SQL语句在MySQL中会被解释成下面的SQL语句:

select * from users where username='' or 1=1

因为在MySQL语言中,“#”是注释符,注释符后面的字符都会被忽略,这样的语句执行后肯定会返回所有users表的所有记录行数,如果我们的后台代码以是否返回大于零的记录数来做登录成功判断的话,非法用户在账号输入框中输入“’or 1=1#”也会成功登录系统,从而获取用户的信息,这就是SQL注入。

预防SQL注入的最好方法是对用户提交的表单数据在前端进行过滤处理,在后端采用预编译语句,它内置了对SQL注入语句的处理。如果在系统中使用Mybatis数据库开发框架,就不需要对SQL注入进行特别处理了,因为Mybatis已经内置了对SQL注入的处理。

跨站点脚本攻击

跨站点脚本攻击主要是在用户提交的表单中嵌入javascript语句,并通过浏览器攻击系统访问者的电脑。在提交的表单中嵌入javascript语句和SQL注入的嵌入原理是一样的,只是攻击方式不一样,SQL注入是攻击服务器的数据库,跨站点脚本是攻击系统访问者的浏览器,浏览器运行攻击者嵌入的脚本后,会获取用户的Cooik数据,从而获取用户的私密信息。例如系统可能会支持用户之间互相发送消息,攻击者会在发送消息的输入框输入攻击脚本,然后提交给系统,如果系统没有进行脚本过滤,就会把带有脚本信息的内容发送给接收者,接收者在浏览器打开内容后,内容中的脚本就会被执行,这就是跨站点脚本攻击。

预防跨站点脚本攻击的最好方法是过滤用户提交的所有表单数据,提交的表单数据中不允许含有javascript代码。

异常错误处理

系统发生异常错误时,一般会对系统使用者给出错误发生原因,如果给出的错误发生原因包含系统信息的话,就有可能被攻击者分析出系统的关键信息,从而找到系统的漏洞。

预防异常错误处理的方法是在提示错误信息时,尽量不要包含系统信息。

DoS攻击

用围殴服务器来形容DoS攻击的危害性是最合适不过的,发起DoS攻击的目的就是要瘫痪服务器。攻击者会利用工具软件不断模拟系统访问请求,导致系统耗尽网络资源而不能正常响应用户的请求。

预防DoS攻击需要硬件、网络环境、系统多方支持。我们在系统方面做的预防工作就是在WEB服务器中设置每分钟连接最大请求数,用于限制DoS的攻击次数,当然这也限制了正常用户的访问数量。

数据存储和数据传输的安全性

数据存储和数据传输的安全性也是非常重要的,重要的系统信息不能用明文存储,必须要加密存储。传输重要数据时,也需要加密后再传输,建议使用HTTPS协议。

在设计系统时,上面提到的由于代码疏忽产生的漏洞都要有相应的设计内容体现出系统的安全性。

防范因编写代码产生的系统漏洞相关推荐

  1. 社保系统漏洞或因代码缺陷 网络安全如何攻防?

    4月22日,大量社保系统相关漏洞出现在补天漏洞响应平台上. 补天漏洞响应平台发布信息称,社保系统.户籍查询系统.疾控中心.医院等大量爆出高危漏洞的省市已经超过30个,包括重庆.上海.河南等,涉及用户数 ...

  2. 最新系统漏洞--D-LINK DIR-3040远程代码执行漏洞

    最新系统漏洞2021年11月14日 受影响系统: D-Link DIR-3040 1.13B03 描述: D-LINK DIR-3040是中国台湾友讯(D-Link)公司的一个路由器.提供连接网络的功 ...

  3. [系统安全] 三十四.恶意代码检测(4)编写代码自动提取IAT表、字符串及时间信息

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. 新病毒仿熊猫烧香 利用 Vista系统漏洞疯狂传播

    3月31日,瑞星全球反病毒监测网截获一个与"熊猫烧香"非常相似的高危病毒,命名为"ANI蠕虫(Worm.DlOnlineGames.a)".该病毒不光传播和危害 ...

  5. 编写代码的软件用什么编写的_您到底是为谁编写代码?

    编写代码的软件用什么编写的 特别感谢许多阅读本文并为我提供有用反馈和建议的人:Anya Roltsch,Frank Schubert,Olga Hollister,Ravi Varshney,Asha ...

  6. 什么是系统漏洞,该如何处理?

    漏洞是在硬件.软件.协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统.即某个程序(包括操作系统)在设计时未考虑周全,当程序遇到一个看似合理,但实际无法处理的 ...

  7. Nessus 系统漏洞扫描与分析软件

    Nessus Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件.总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件. 外文名 Nessus 性    质 系统漏洞扫 ...

  8. 最详细的系统漏洞扫描并对靶机进行利用攻击演练(模拟一次黑客白帽子操作)

    万万不可做坏事,仅为学习参考使用. 一.前提准备 1.所需条件: (1)kali2.0 linux 的iso文件(最好是32位,为安装nessus做好装备) 下载网址:https://www.kali ...

  9. 30.WEB漏洞-RCE代码及命令执行漏洞

    30:WEB漏洞-RCE代码及命令执行漏洞 参考文章:https://www.cnblogs.com/zhengna/p/15775737.html 本文为博主学习复现笔记 文章目录 30:WEB漏洞 ...

最新文章

  1. MATLAB 数据分析方法(第2版)1.3 MATLAB基本语法
  2. java 继承练习题_Java继承 练习题
  3. mysql update用not in太慢了_MySQL 加锁和死锁解析
  4. Oracle 中使用 fetch bulk collect into 批量效率的读取
  5. 第 132 章 Example
  6. php网站加广告位,HotNews Pro主题文章内容上面添加广告位
  7. 智能门锁半夜离奇开门吓坏用户 官方回应:只是一场误解
  8. Tensorflow 实战 Google 深度学习框架(第2版)---- 10.2.2节 P272 代码
  9. power bi 雷达图_【深度解析】基于激光雷达技术的车型识别方法及系统实现
  10. windows 查看局域网内所有已使用的IP
  11. lua安装教程 linux,Linux 安装 luarocks(lua的模块管理工具)
  12. 做webgl遇到的两个坑
  13. 【组件篇】ionic3开源组件
  14. 【T001】win10开机 自动打开 chrome word excel
  15. 【YOLOv7】结合GradCAM热力图可视化
  16. UVALive - 4394 (区间dp)
  17. 人工智能领域技术,主要包含了哪些核心技术?
  18. linux命令 scp怎么用,linux系统中scp命令怎么使用
  19. 电商API:拍立淘图片搜索
  20. 北斗定位与GPS定位的区别

热门文章

  1. Jmeter连接Mysql
  2. php使用redis存储
  3. Spark源码分析 -- SchedulableBuilder
  4. 命令orapwd的学习
  5. Oracle10g数据库的树立
  6. The type Resource is not accessible due to restriction on required library
  7. idea导入gitlab上面的项目
  8. python os.access_os.access(path, mode)
  9. 十道解分式方程及答案_100道八年级分式方程及答案.
  10. 服务器显示不明用户远程过,服务器显示不明用户远程过