计算机网络安全
# 计算机网络安全
# 黑客上传了一个文件到我们服务器之后,是怎么黑进我们系统的?
- 首先一个黑客拿到一个服务器,我们就暂且认为一个服务器就是一个ip(其实服务器和ip在本质上还是有很大区别的),黑客拿到一个ip,在总体上他会 分三个步骤去慢慢渗透你。
- C段渗透
- C段就是和你同一个网段的一台主机,C段渗透就是通过和你同一网段的主机对你的目标ip进行ARP等手段进行渗透
- 社会工程学
- 社会工程学通俗点讲就是欺骗,黑客通过欺骗你,比如用网站钓鱼等让你自己把重要信息给泄露出去
- 服务渗透
- 一般我们的服务器上会开启着很多服务,比如MySQL,FTP,RDP,Web等,黑客可以通过我们开启的这些服务用一些特殊的手段对我们的服务器进行渗透。而Web端又可以通过SQL注入,上传漏洞,XSS,包含漏洞,代码执行,逻辑漏洞等来渗透我们的服务器。
# 页面常见加密方法?
- aes/des加密
- base64加密(不可逆,不可被破解)
- MD5加密
- sha512加密(不可逆,不可被破解)
- rsa加密(非对称加密)[rsa运行速度比aes慢]
# aes(对称加密)特点?
- 优点: 算法公开、计算量小、加密速度快、加密效率高
- 缺点:
- 交易双方都使用同样钥匙,安全性得不到保证
- 密钥管理困难,使用成本较高
# 前后端交互如何保证数据的安全性?
- 用 aes(对称加密)和rsa(非对称加密) 配合使用。
- 客户端启动,发送请求到服务端,服务端用rsa算法生成一个公钥(public1)和私钥(prikey1)。将公钥返回给客户端。
- 客户端拿到服务端返回的 公钥(public1)之后,自己在前端生成一个公钥(public2)和私钥(prikey2),并将public2通过 public1进行加密,并传输给服务端。
- 服务端接收后通过私钥(prikey1)进行解密,拿到了客户端的公钥(public2)。
- 服务端生成一个aes的16位的key,并使用公钥(public2)加密传输给客户端。
- 客户端获取到key后,通过私钥(prikey2)进行解密。拿到aes加密的key。
- 然后客户端就用加密的key进行数据传输,整个流程结束。
# 前端秘钥怎么存储
- 秘钥存储在后端,通过 aes+rsa配合将秘钥拿到。
# 添加加密后接口访问速度比之前快还是慢,慢多少?
- 没有影响
# 页面常见攻击方式
- xss攻击
- crsf攻击
- sql注入
# 前端怎么去防止sql注入
- 防止 SQL 注入唯一可靠的方式是
验证输入
和参数化查询
- 开发者必须
检查所有用户输入
,而不是仅检查网页表单中的输入,比如登录表单。他们必须移除潜在的恶意代码因素,比如单引号
。在你的线上环境中屏蔽数据库错误也是个好主意。因为结合数据库错误,SQL 注入攻击将获得更多数据库相关信息
# sql注入的危害
- 通过sql注入可以添加、编辑、删除数据库中的数据
- 可以拿到其他用户的凭证。伪装成这些用户。
- 甚至可以拿到数据库管理员权限。窃取数据。
- 影响应用的可用性。
- 可以通过sql注入作为初始手段,攻击防火墙背后的内网。
# sql注入攻击的过程及原因
- 为了发起 SQL 注入攻击,攻击者首先需要在网站或应用程序中找到那些易受攻击的用户输入。这些用户输入被有漏洞的网站或应用程序直接用于 SQL 查询语句中。攻击者可创建这些输入内容。这些内容往往被称为恶意载体,它们是攻击过程中的关键部分。随后攻击者将内容发送出去,恶意的 SQL 语句便会在数据库中被执行。
- 攻击者可利用 SQL 注入,从数据库中得到其他用户的用户凭证。之后他们便能伪装成这些用户。这些用户中甚至有可能包括有所有数据库权限的数据库管理员。
- SQL 可用于从数据库中选择并输出数据。SQL 注入漏洞允许攻击者访问数据库服务中的所有数据。
- SQL 也可用于修改数据库中数据,或者添加新数据。例如,在金融产品中,攻击者能利用 SQL 注入修改余额,取消交易记录或给他们的账户转账。
- SQL 可用于从数据库中删除记录,甚至删除数据表。即使管理员做了数据库备份,在数据库中数据恢复之前,被删除的数据仍然会影响应用的可用性。而且,备份很可能没有覆盖最近的数据。
- 在某些数据库服务中,可通过数据库服务访问操作系统。这种设计可能是有意的,也可能是无意的。在这种情况下,攻击者将 SQL 注入作为初始手段,进而攻击防火墙背后的内网
# 预防sql注入
- 培养并保持安全意识
- 不要信任任何用户输入
- 使用白名单,而不是黑名单: 不要基于黑名单过滤用户输入。因为聪明的攻击者总是能找到绕过黑名单的方法,所以应尽可能只使用严格的白名单,对用户输入进行验证和过滤。
- 采用最新的技术
- 采用经过验证的机制
- 周期性扫描: SQL 注入漏洞可能被开发者引入,也可能被外部库、模块或软件引入。你应该使用网站漏洞扫描器(比如 Acunetix)周期性扫描你的网站。如果你使用 Jenkins,你可以安装 Acunetix 插件,实现每次构建时进行自动扫描。
# liunx 修改文件读取权限
chmod -R 777
- 表示的意思:
- 第一个 7 表示:文件所有者访问权限
- 第二个 7 表示:群组访问权限
- 第三个 7 表示:其他人访问权限
- 表示的意思:
r(read)w(write)x(eXecute) 读、写、执行
- 权限值:4
- 权限值:2
- 权限值:1
# 怎么自己的网站不被爬虫爬?
- 限制User-Agent字段:User-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息
- 限制IP:限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。
- 添加验证码:在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。
- Cookies限制: 根据业务需求,可对Cookies进行限制,要求用户登录后才能使用某些功能或权限,并针对同一账号的访问速度进行限制。
- 使用爬虫管理产品: 可以使用防火墙产品,能够有效防范爬虫,比如阿里云、腾讯云