网络安全基础知识与服务端漏洞
网站的基本构成:
-
前端:
包含各种资源、链接、API。 常用语言框架:JavaScript/ VUE/ REACT -
网关代理:
网关和代理是两种不同的概念,它们的功能有重合的地方:使HTTP请求/响应在服务接口之间传递。区别是代理只有数据传输,并不会对数据做出修改。
网关除了数据透传,还可能会进行协议的变化。比如上游是HTTP1协议,下游变为QUIC协议。
例:在国内使用GOLANG第三方库时需要使用代理,进行第三方库的下载。
网络安全漏洞的后果:
- 数据泄露。
- 服务瘫痪。
- 成果失窃(保密数据被无关人士浏览到)
- 系统劫持(某服务或程序的权限被无关人士获取)
常见网络漏洞:
- 分别存在针对前端和后端漏洞的攻击。
- 漏洞的分类:
- 服务端漏洞: SQL、RCE/命令注入、SSRF、文件上传
- 客户端漏洞: XSS、CSRF、点击劫持。
服务端漏洞--原理与防范方式
- 第三方组件漏洞:
在程序中的依赖(比如第三方库或者插件),来自不安全或者恶意的网站,或者本身存在安全漏洞。因此将漏洞引入程序中。 防护方式:使用现有平台查询项目组件是否安全。(比如java的 dependency-check-maven 可以检查项目以来的组件是否存在安全漏洞)。 - SQL 注入:
因为SQL语句和动态数据部分没有严格区分,所以用户输入的数据中有的片段可能会被读作SQL命令,被程序执行,这样本不具有程序内部权限的用户就能对程序(在数据库读写时)进行一些非法操作。(比如字符串中含有 SELECT、PUT 等) 漏洞产生原因: 语言框架问题、使用危险的函数(比如那些支持SQL!拼接的函数)、没有限制特殊字符的输入(比如$)。 防护方式:数据类型校验、特殊字符过滤或者转义。 - 越权漏洞:
水平/垂直/未授权 三种
防范方式:资源属主校验、将接口分组,使用中间键进行权限拦截。 - SSRF:
服务端请求伪造:攻击者使后端跳转跳转到违法网址。比如将URL进行修改,添加‘localhost/admin’字段访问内网。
防范:对URL的HOST进行白名单过滤。 - 文件上传漏洞:
在公开的文件上传接口上传恶意文件、获取图片URL然后分享到其他平台。(对资源的侵占、对版权的侵犯等)
防护: 限制文件类型、站库分离、对图片访问链接进行限制(比如时长、访问者身份等)。