not finished
SQL注入
CSRF
Cross-site request forgery:跨站请求伪造。
原理是攻击者构造出一个后端请求地址,诱使用户点击或通过某些途径指定发起请求。
CSRF 就是利用用户的登录态发起恶意请求
如何预防
- Get请求不对数据进行修改
- 不让第三方网站访问用户Cookie
- 阻止第三方网站请求接口
- 请求时附带验证信息,比如验证码或者Token
XSS
Criss-site scripting 跨网站指令码。
它允许恶意使用者将应用程序的安全漏洞攻击,是代码注入的一种。
如何攻击
- XSS通过修改HTML节点或者执行JS代码来攻击网站
//例如
<!-- http://www.domain.com?name=<script>alert(1)</script> -->
防御:转义输入输出的内容。对于引号,尖括号,斜杠进行转义
function escape(str) {
str = str.replace(/&/g, "&");
str = str.replace(/</g, "<");
str = str.replace(/>/g, ">");
str = str.replace(/"/g, "&quto;");
str = str.replace(/'/g, "&##39;");
str = str.replace(/`/g, "&##96;");
str = str.replace(/\//g, "&##x2F;");
return str
}
//以上变成
// -> <script>alert(1)<&##x2F;script>
escape('<script>alert(1)</script>')
点击劫持
点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过iframe嵌套的方式嵌入自己的网页中,并将iframe设置为透明,在页面中诱出一个按钮诱导用户点击。
如何防御
中间人攻击
概念:攻击方同时与服务端和客户端建立了连接,并让对方觉得连接是安全的,但实际上整个通信过程都被攻击者控制了。攻击者不仅能获得双方的同学信息,还能修改通信信息。
防御:增加一个安全通道来传输信息。HTTPS就是用来防御中间人攻击的。
不要连公共场所的wifi