常见的Web攻击方式

173 阅读2分钟

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, "&amp;");
	str = str.replace(/</g, "&lt;");
	str = str.replace(/>/g, "&gt;");
	str = str.replace(/"/g, "&quto;");
	str = str.replace(/'/g, "&##39;");
	str = str.replace(/`/g, "&##96;");
    str = str.replace(/\//g, "&##x2F;");
    return str
}
//以上变成
// -> &lt;script&gt;alert(1)&lt;&##x2F;script&gt;
escape('<script>alert(1)</script>')

点击劫持

点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过iframe嵌套的方式嵌入自己的网页中,并将iframe设置为透明,在页面中诱出一个按钮诱导用户点击。
如何防御

中间人攻击

概念:攻击方同时与服务端和客户端建立了连接,并让对方觉得连接是安全的,但实际上整个通信过程都被攻击者控制了。攻击者不仅能获得双方的同学信息,还能修改通信信息。
防御:增加一个安全通道来传输信息。HTTPS就是用来防御中间人攻击的。
不要连公共场所的wifi