
前端安全
XSS
跨站脚本攻击(全称Cross Site Scripting,为和CSS(层叠样式表)区分,简称为XSS)是指恶意攻击者在Web页面中插入恶意javascript代码(也可能包含html代码),当用户浏览网页之时,嵌入其中Web里面的javascript代码会被执行,从而达到恶意攻击用户的目的。XSS是攻击客户端,最终受害者是用户,当然,网站管理员也是用户之一。
XSS漏洞通常是通过php的输出函数(echo)将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
XSS有三类:反射型XSS(非持久型)、存储型XSS(持久型)和DOM XSS
防御:
XSS 来源于用户提供的内容,只要过滤掉其中的输入的恶意代码即可。
不信任用户的输入;编码;
CSRF
跨站请求伪造
1)原理是:浏览器机制,用户访问一个url就会带上对应域名的cookie,这就方便了CSRF;此时cookie有效;
2)get和post攻击:
1、get攻击:若是服务器接受get请求
用户登录银行网站后,用户没有退出网站,就点击恶意网站图片或隐藏的iframe,然后src为https://bank.com/zhuanzhang?to=111&fee=222,这样恶意网站伪造的请求就携带银行cookie请求成功了;
2、post攻击
构造一个点击按钮,触发js提交post;例如隐藏一个iframe,target指向隐藏iframe,填入input内容,js触发submit,诱导用户点击按钮,提交请求,例如关闭广告按钮等等
3)防御:
使用完后退出正常网站登录;
refer校验,对请求来源网址校验;
增加手机验证码;
token防御:每次生成随机字符串,设置隐藏,提交的时候会带上token,服务端校验token是否正确,伪造的网站是不会拿到token的
加密
RSA非对称加密、md5加密
ddos
加签
AES对称加密
对称加密:如AES,DES,3DES
含义:加密和解密使用的是同一把钥匙。密钥不能在网络中传输,避免被拦截。如果要传输,必须要对密钥进行非对称加密再加密一次。
优点:算法简单,加密解密容易,效率高,执行快。
缺点:相对来说不算特别安全,只有一把钥匙,密文如果被拦截,且密钥也被劫持,那么,信息很容易被破译。
非对称加密:如RSA DSA RCC
含义:有两个钥匙,及公钥(Public Key)和私钥(Private Key)。公钥和私钥是成对的存在,如果对原文使用公钥加密,则只能使用对应的私钥才能解密。通过私钥经过一系列算法是可以推导出公钥的,但是无法通过公钥反向推倒出私钥,这个过程的单向的。
优点:安全,即使密文被拦截、公钥被获取,但是无法获取到私钥,也就无法破译密文。作为接收方,务必要保管好自己的密钥。
缺点:加密算法及其复杂,安全性依赖算法与密钥,而且加密和解密效率很低。
AES:AES(高级加密标准)是一种对称加密算法,即加密和解密使用相同的密钥。它可以加密长度为128、192和256位的数据块,并使用128位的密钥进行加密。AES算法使用了固定的块长度和密钥长度,并且被广泛应用于许多安全协议和标准中,例如SSL/TLS、SSH、IPSec等。
https://cryptojs.gitbook.io/docs/#ciphers
1 |
|
Encoders
CryptoJS can convert from encoding formats such as Base64, Latin1 or Hex to WordArray objects and vice-versa.
1 |
|