技术学习总结|青训营

82 阅读2分钟

这里针对第十四节课进行技术总结:

第十四节课

什么叫漏洞

第十四节课讲述的是什么叫网站的常见漏洞,首先我们要知道什么叫做漏洞。 一个网站基本由四部分构成:前端:JavaScript / vue / react 网关:nginx 后端:Go / Java / Node 前后端交互:HTTP / WebSocket,我们可能经常听到比如数据泄露,服务泄漏,成果窃取等事件,这些事件就叫做漏洞

截屏2023-08-27 下午3.07.56.png

漏洞的分类

漏洞主要包括服务器漏洞和客户端漏洞两种:服务端常见漏洞比如,我们只打印出某个语句,或者解析一下json就产生了漏洞,常见的防护方式:针对java可以选择使用dependency-check-maven检查项目以来的组件是否存在安全漏洞。

sql注入

其中比较严重的是sql注入,那么什么叫sql注入呢? 定义是:SQL语句静态模板和动态数据部分没有严格区分,如果在数据项中加入了某些SQL语句关键字(比如说 SELECT、DROP等等),这些SQL语句就很可以在数据库写入或读取数据时得到执行。

造成这种情况的原因可能是:错误使用语言框架,或者语言框架本身存在安全问题。

我们可以采用一些防护方法来进行预防:比如说我们可以尽可能的使用预先编译,使用orm框架的时候注意框架特性,复杂的一些情况尽可能的使用拼接在一起的sql语句

命令执行

在一些命令执行的过程中,也有可能遇到漏洞,主要的防护措施有:设置白名单进行验证;对一部分的数据类型进行校验;特殊字符黑名单的转意义过程。

越权漏洞

越权的定义是:资源访问或操作时候主体权限没有进行校验就会造成越权问题,细分为:未授权、水平越权和垂直越权。黑灰产场景:订单查询功能提供订单id即可查询订单详情,这里攻击者可以遍历orderId获取其他用户的订单信息

我们可以使用的防护方式:涉及资源id尽量不要使用短id(遍历难度较小),同时最重要的一定要最好资源属主校验。

总结

总体来看,对于漏洞的防护尽可能的周全详细,全方位的了解到可能存在的漏洞,也是本节课开展的意义。