如何防范常见的Web攻击

XSS

XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和 CSS混淆,故将跨站脚本攻击缩写为XSS。

跨站点脚本攻击,指攻击者通过篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。

XSS攻击流程

以用户注册表单提交为例,如下:

用户:
密码:

如果,用户输入username的不是一个正常的字符串,而是:

"/>

此时,页面变成下面的内容,在输入框input的后面带上了一段脚本代码。


当我们原封不动的在页面上显示用户昵称 页面会弹出对话框,并不会造成什么危害,攻击的威力取决于用户输入了什么样的脚本,只要稍微修改,便可使攻击极具攻击性。

譬如一下论坛网站,当攻击者提交恶意的javascript代码的评论信息或者反馈信息(这些信息,正常客户端没有做xss校验,会存在客户端注入问题),所有访问者访问该内容时,都会执行这段恶意的javascript代码。

如何防范XSS攻击

前端,服务端需同时对HTML标签做转义处理。将其中的”<”,”>”等特殊字符进行转义编码。

CSRF

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

跨站点请求伪造,指攻击者通过跨站请求,以合法的用户的身份进行非法操作。可以这么理解CSRF攻击:攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息。

CSRF攻击流程

  1. 用户登录受信任网站A;
  2. 在不退出网站A的情况下,访问危险网站B(攻击者网站或攻击者挂马的网站)。

例如:

如何防范CSRF攻击

1、token机制

在HTTP请求中进行token验证,如果请求中没有token或者token内容不正确,则认为CSRF攻击而拒绝该请求。

2、referer检测

在HTTP Header中有一个字段Referer,它记录了HTTP请求的来源地址,如果Referer是其他网站,就有可能是CSRF攻击,则拒绝该请求。
但是,服务器并非都能取到Referer。很多用户出于隐私保护的考虑,限制了Referer的发送。在某些情况下,浏览器也不会发送Referer,例如HTTPS跳转到HTTP。

你可能感兴趣的:(如何防范常见的Web攻击)