跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
解决方案
为cookie设置httpOnly属性,对用户的输入进行检查,进行特殊字符过滤
CSRF攻击
攻击方式
CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:
攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。
解决方案
使用验证码,检查https头部的refer,使用token
中间人攻击
攻击方式
也称浏览器劫持,web劫持。简单来说就是黑客通过各种各样的技术手段,在服务端发送出的HTTP报文与显示屏呈现的WEB页面之间做了一些手脚,纂改网页的部分或全部内容。主要分为网络挟持纂改和终端挟持纂改(比如盗版游戏中植入的一些木马经常会纂改你的浏览器主页)。
更多信息
解决方案
使用HTTPS协议传输报文,远离不安全的网站。
网络安全是什么报文的机密性:只有发送发和希望的接收方能够理解传输报文的内容
报文完整性:报文在传输的过程中未发生变化或者恶意篡改
运行安全性:几乎所有的机构都有与公共因特网相连接的局域网,这些网络都因此潜在地能够被危及安全
密码学 对称加密 对称加密算法发送方和接收方持有同一把密钥,发送消息和接收消息都使用该密钥。相比非对称加密算法,该算法加密和解密的速度都更快,但由于双方都需要事先直到密钥,因此在传输过程中更容易被捕获,安全性不如非对称。
恺撒密码大名鼎鼎的尤利乌斯·恺撒是古罗马共和国著名的执政官,他的传奇事迹无需概述。我们都知道行军打仗除了兵马粮草之外,情报也是非常重要的,现代战争俨然一副情报战。于是恺撒使用了一种加密方法进行情报加密再让接收方对情报进行解密,我想这也是他能在高卢战场取得重大胜利的原因之一吧。
//恺撒密码,在阐述网络分层的例子我们就用到了这种加密方法 a b c d e f g h i j k l m n o p q r s t u v w x y z (26个字母的闭环) k = 5 i love u n qtaj z 块密码将数据报文分块
每一块报文由一个T表进行加密处理
将块报文组装起来
流密码在加密报文之前,发送方生成一个随机比特串k,作为初试向量c0,发送给接收方。
发送方将初始数据m1与随机向量c0亦或后使用密钥进行加密
对于第i个数据报,发送方根据ci = Ks(mi ^ c(i-1))生成第i个密文块
接收方根据Ks进行解密
上述过程中随机生成的比特串是为了标识数据报。因为有一定可能出现相同的数据报,如果不加入随机标识符,那么相同的数据报会采用相同的加密方法,攻击者可能潜在地猜出明文。
非对称加密 非对称加密算法接收方生成一个公钥和一个私钥,将公钥发送给发送方。发送方通过该公钥对会话进行加密然后发送到接收方,接收方通过私钥进行解密。发送过程中就算被窃取数据,没有服务端的私钥也难以对信息进行解密,因而安全性较高。
RSA算法最常用的非对称加密算法之一
选择两个大素数p和q,这两个值越大,就越难以破解,而执行加密和解密所用的时间也就越长。
计算 n = pq和 z = (p-1)(q-1)
选择小于n的一个数e,且使得e和z没有(非1的)公因数。(也就是e和z互素)
求一个数d,使得 ed-1 可以被z整除。ed mod z = 1(mod 是取余的意思)
接收方使用的外界可用的公钥Key+是一对数(n,e),其私钥Key-是一对数(n,d)
发送方发送给接收方一个由m表示的比特组合数据,且m<n。那么加密后的值c为c = m ^ e mod n(^ 表示幂)
接收方解密m = c ^ d mod n
为什么这样可以解密??你或许和我一样亦或为什么这样就能解密出原始的报文信息呢,这就涉及到数论知识了,毕竟这个算法是由三位数学家发明的。(没错这三个字母就算他们名字的缩写)
上述式子整理一下我们需要证明的是 (m ^ e mod n) ^ d mod n = m
在模运算中(a mod n) ^ d mod n = a ^ d mod n,因此(m ^ e mod n) ^ d mod n <=> m ^ (ed) mod n