什么是前端安全

随着互联网的流行,用户上网的时间也与日俱增。网上交易、上网聊天等,已经融入到了生活中,不法分子也随之而来,网络安全问题日益凸显。网络安全包括前端安全、后端安全、通信安全等一些列问题,这里将着重讲述前端可能会遇到的安全问题,及一些常见的防御方案。

前端常见的安全问题包括XSS攻击(跨站脚本攻击)、CSRF攻击(跨站请求伪造)、iframe安全隐患、本地数据安全、HTTP请求传输安全、数据上传安全(SQL注入)等。

XSS攻击(跨站脚本攻击)

跨站脚本攻击(XSS攻击)指的是恶意攻击者往Web页面中插入恶意的html代码,当用户浏览网页时,嵌入其中的html代码会被执行,从而达到恶意目的。通常XSS攻击会结合SQL注入等数据上传安全一起出现。

最常见的例子就是网页上的评论框,当评论框未做任何安全措施的时候,攻击者可以通过写入上传一段sql语句或者script语句,来获取数据库的内容数据或者植入js脚本。当其他用户在访问该网页,查看评论的时候,这个脚本就会在网页上运行,窃取用户的隐私数据,来达到恶意的目的。

危害

1、窃取用户隐私数据——账号、密码、设备信息等

2、控制企业数据——读取、篡改、删除、添加敏感数据

3、显示非法信息

4、控制网页访问,跳转到第三方网页

5、通过用户浏览器攻击第三方网站

防御

XSS攻击核心是利用脚本注入,因此我们只要控制内容的写入即可进行防御。前端一般的防御方式,即对html标签进行转义——将”<”、”>”等标签转义为html的转义字符。

CSRF攻击(跨站请求伪造)

跨站请求伪造(CSRF攻击),是一种常见的Web攻击方式。CSRF攻击过程——受害者用户登录网站A,输入个人信息,在本地保存服务器生成的cookie信息,然后在A网站点击由攻击者构建的一条恶意链接跳转到B网站,然后B网站携带着用户的cookie信息去访问B网站,让A网站造成是用户自己访问的假象,从而来进行一些列的操作,常见的就是转账。

危害

让用户在已授权信息的网页上进行一些完全无知的操作,进而进行用户不愿做的行为,达到恶意的目的。

防御

因为CSRF攻击是利用用户在某站点已授权的情况下,引导用户进行无知的行为操作,达到恶意目的。所以,只要能够在进行操作之前增加一些必要的步骤,使用户必须亲自完成,则可进行避免。例如在最后操作之前进行验证码校验(短信验证码、图形验证码等),或者每次的请求设置特定的session信息,信息中携带token数据进行校验。

iframe安全隐患

有时候前端页面为了显示别人的网站,就使用iframe进行引入,例如嵌入一些广告等。但引入第三方的网站,我们是无法控制第三方网站的内容和安全性的,因此可能被利用,造成安全问题。

防御

1、使用安全的网站进行嵌入

2、在iframe添加一个叫sandbox的属性,浏览器会对iframe内容进行严格的控制,详细了解可以看看相关的API接口文档。

本地数据安全

很多的网站会将一些用户信息以cookie的形式存储到用户的浏览器中,如果不进行加密以明文的方式进行存储,就很可能会被攻击者利用,获取本地数据,造成隐私泄露。

防御

对存储到本地的数据进行加密,md5加密或者rsa加密。这样攻击者就很难解密出具体的内容,就能避免安全问题。

HTTP请求传输

HTTP传输是不安全的,HTTP协议(超文本传输协议)是一种使用明文数据传输的网络协议。HTTP协议的明文传输方式会造成很大的安全问题,试想一些,如果用户输入的账号密码使用明文进行传输,传输中被第三者截获了数据,则将造成用户信息的泄露。

防御

使用HTTPS代替HTTP。HTTPS协议是HTTP协议的升级版,在HTTP协议的基础上增加了数据加密。在数据传输之前,对数据进行加密,然后再发送到服务器端。这样,即使传输中被第三方截获,也无法对数据进行解密,这样用户的数据将会是安全的。