| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 网络安全简述 -> 正文阅读 |
|
[网络协议]网络安全简述 |
文章目录*防范常见的 Web 攻击*SQL注入攻击 攻击者在HTTP请求中注入恶意的SQL代码,服务器使用参数构建数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。 用户登录,输入用户名 lianggzone,密码 ‘ or ‘1’=’1 ,如果此时使用参数构造的方式,就会出现 select * from user where name = ‘lianggzone’ and password = ‘’ or ‘1’=‘1’ 不管用户名和密码是什么内容,使查询出来的用户列表不为空。如何防范SQL注入攻击使用预编译的PrepareStatement是必须的,但是一般我们会从两个方面同时入手。 Web端 1)有效性检验。 2)限制字符串输入的长度。 *服务端* 1)不用拼接SQL字符串。 2)使用预编译的PrepareStatement。 3)有效性检验。(为什么服务端还要做有效性检验?第一准则,外部都是不可信的,防止攻击者绕过Web端请求) 4)过滤SQL需要的参数中的特殊字符。比如单引号、双引号。 *什么是CSRF攻击*CSRF(Cross-Site Request Forgery)的全称是“跨站请求伪造”,指攻击者通过跨站请求,以合法的用户的身份进行非法操作。可以这么理解CSRF攻击:攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息。如何防范CSRF攻击 安全框架:例如Spring Security。 token机制:在HTTP请求中进行token验证,如果请求中没有token或者token内容不正确,则认为CSRF攻击而拒绝该请求。 验证码:通常情况下,验证码能够很好的遏制CSRF攻击,但是很多情况下,出于用户体验考虑,验证码只能作为一种辅助手段,而不是最主要的解决方案。 referer识别:在HTTP Header中有一个字段Referer,它记录了HTTP请求的来源地址。如果Referer是其他网站,就有可能是CSRF攻击,则拒绝该请求。但是,服务器并非都能取到Referer。很多用户出于隐私保护的考虑,限制了Referer的发送。在某些情况下,浏览器也不会发送Referer,例如HTTPS跳转到HTTP。 1)验证请求来源地址; 2)关键操作添加验证码; 3)在请求地址添加 token 并验证。 *二、xss攻击*1、XSS的基本概念:XSS(Cross Site Scripting):跨域脚本攻击。 2、XSS攻击原理:不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是js、hmtl代码块等)。 3、XSS攻击后果:盗用Cookie破坏页面的正常结构,插入广告等恶意内容D-doss攻击 4、XSS的攻击方式,具体详见:反射型XSS漏洞的条件+类型+危害+解决 5、XSS的防范措施(encode+过滤) 2、过滤:移除用户输入的和事件相关的属性。如onerror可以自动触发攻击,还有onclick等。(总而言是,过滤掉一些不安全的内容)移除用户输入的Style节点、Script节点、Iframe节点。(尤其是Script节点,它可是支持跨域的呀,一定要移除)。 3、校正:避免直接对HTML Entity进行解码。使用DOM Parse转换,校正不配对的DOM标签。(DOM Parse:它的作用是把文本解析成DOM结构) *三、 CSRF 和 XSS 的区别*1、CSRF是跨站请求伪造; XSS是跨域脚本攻击。 *DDoS(分布式拒绝服务攻击)*中国这种人口基数大,互联网发达的国家,如果一个互联网公司的安全出了故障,那么影响将是巨大的 拒绝服务攻击(DoS) ****拒绝服务攻击(Denial-of-Service Attack,DoS)是一种常见的攻击手段********.****。DoS 的原理就是利用大量的流量迅速向一个网站发送出去。这种流量可能是应用层的,比如大量 HTTP 请求;也可以是传输层,比如大量的 TCP 请求。比如 2018 年 2 月 18 日,Github 就遭受了一场超大规模的 DoS 攻击,瞬间流量峰值达到了 1.35Tbps。之后,黑客还对 Google、亚马逊等网站也进行了攻击。 DDoS 的种类 *DDoS 的种类有很多,手段也很复杂。* 直接不停发送 Ping 消息的,利用底层的 ICMP 协议,称为ICMP 攻击; 走 UPD 协议的,称为UDP 洪水(UDP Flood); 不停利用 TCP 协议发送 SYN 消息的,也叫SYN 攻击; 模拟用户行为,不停发帖、浏览帖子、浏览网页、加购物车等,称为挑战黑洞攻击(Challenge Collapsar)。 *HTTPS 网站?**摘要和签名* 现实的生活当中,如果想证明一份合同没有被修改过,人们会在合同上盖一个齐缝章,并附上自己的签名。签名和盖章其实是一个含义,目的是证明自己签署过某份协议,而且一经签署,协议就不能再变更。 如果想阻止一份合同被修改,最容易想到的方式是加密。合同一旦被加密了,要修改就必须原文和密文一起修改。虽然这没有解决最本质的问题——谁来提供信用。但是这样的种做法解决了一个最基础的问题。如果有人想修改合同,就必须知道密钥。 *摘要算法* 但是加密算法的计算量较大,而且结果通常比原文体积大。那是否有其他更好的处理方式呢?其实一个更简单的做法,就是利用摘要算法。摘要,顾名思义,和现实中文章的摘要是一样的。相当于给一篇文章,形成一个提要。只不过,计算机世界的摘要算法算出来的结果并不是对原文真的概括总结,而是一个大数字。 给计算机一篇文章,计算机用摘要算法(主要是哈希类算法)生成一个字符串,如果文章内容改变,哪怕是一个字,一个标点符号,摘要也会完全改变。和完全加密一篇文章相比,摘要的体积很小,因此非常有利于存储和传输 *证书* 在上面张三和李四的例子当中还存在着一个重要的缺陷,就是张三、李四的公钥凭什么具有公信力?一份合同,张三李四都要签名,然后互相交换签名的数据。但是请你注意,这里咱们只是用到了技术的手段,或者你可以理解成这是一个数学的方式。信用本身不能用数学解决,数学只是工具。这里还存在着一个重要的缺陷,就是谁来证明,张三给李四的公钥,就是张三的公钥;李四给张三的公钥,就是李四的公钥。而谁又来证明张三和李四,是合法的两个个人,具有签署合同的权利。 *信用的提供* 这里涉及的一个最基本问题是,信用必须有人提供。只有权威机构(比如公安局)可以证明张三是张三,李四是李四。同理,互联网世界也需要机构提供证书,由机构证明他们的公钥。这并不是说,张三自己不能制作自己的证书,只不过张三做的证书没有公信力。互联网中,加密算法、签名算法都是公开的,只不过张三自己制作的证书背后没有信用的支持。 *证书制作* 证书是一个身份证明文件,比如互联网中,经常会为一个域名制作证书。通常的一个域名证书会有一些基础信息: 覆盖的域名 证书的用途 签发时间 到期时间 域名方的公钥 除了证明身份,证书还有一个重要的作用就是让其他人可以使用自己的公钥。比如自己签名的数据,就可以用自己的公钥解密对照。总的来说,你可以把这些基础信息视作文本,最重要的,就是要有权威机构对证书的签名。权威机构用自己的私钥对证书进行签名,于是证书上还需要增加 3 个信息: 权威机构的名称 权威机构的签名 权威机构的网址 *RAPIDSSL RSA CA 2018* *信用链的验证* HTTPS 协议打开绿盟的页面时,这个证书会随着 HTTPS 的握手被下载到本地浏览器打开证书,发现提供方式 GlobalSign。GlobalSign(Certificate Authority,CA)是一家证书颁发机构。 浏览器并不需要理解 *RAPIDSSL* 是谁,在验证过程中,浏览器会查找操作系统中,是否已经安装了 *RAPIDSSL* 的证书。如果已经安装了,浏览器就会相信这个证书。操作系统的提供商,比如微软、苹果、谷歌总不会恶意安装非法证书砸自己的招牌。只要用户本机安装了 *RAPIDSSL* 证书,那么 *RAPIDSSL* 证书的公钥就应该可以解密网站证书的签名,得到网站证书的摘要,那么就可以信任 *RAPIDSSL* 签发的这张拉勾的证书。 如果操作系统中没有安装 *RAPIDSSL* 的证书该怎么办呢?不要着急,这个时候,浏览器会去 *RAPIDSSL* 的网站下载证书,拿到 *RAPIDSSL* 证书后,浏览器也不确定 *RAPIDSSL* 是一个权威机构,这个时候浏览器会****RAPIDSSL**** 证书上有没有签发方。如果有,递归进行检查签发方的证书是否安装在操作系统本地,直到找到根证书。根证书的特点是,这个机构的证书没有其他机构为它签名。只要操作系统中有根证书,那么 *RAPIDSSL* 就值得信任, *网站的信用是由操作系统的提供商、根证书机构、中间证书机构一起在担保。* |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 2:28:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |