
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发语言,而今天我们就通过案例分析来了解一下,web前端网络安全问题与防护。
跨站脚本攻击(XSS)
Cross-SiteScripting(跨站脚本攻击)简称XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如Cookie、SessionID等,进而危害数据安全。
为了和CSS区分,这里把攻击的一个字母改成了X,于是叫做XSS。
一般可以通过三种方式来注入恶意脚本:
反射型XSS攻击
顾名思义,恶意JavaScript脚本属于用户发送给网站请求中的一部分,随后网站又将这部分返回给用户,恶意脚本在页面中被执行。一般发生在前后端一体的应用中,服务端逻辑会改变终的网页代码。
反射型XSS的攻击步骤:
攻击者构造出特殊的URL,其中包含恶意代码。
用户打开带有恶意代码的URL时,网站服务端将恶意代码从URL中取出,拼接在HTML中返回给浏览器。
用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。
基于DOM的XSS攻击
目前更流行前后端分离的项目,反射型XSS无用武之地。但这种攻击不需要经过服务器,我们知道,网页本身的JavaScript也是可以改变HTML的,黑客正是利用这一点来实现插入恶意脚本。
基于DOM的XSS攻击步骤:
攻击者构造出特殊的URL,其中包含恶意代码。
用户打开带有恶意代码的URL。
用户浏览器接收到响应后解析执行,前端JavaScript取出URL中的恶意代码并执行。
恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。
存储型XSS攻击
又叫持久型XSS,顾名思义,黑客将恶意JavaScript脚本长期保存在服务端数据库中,用户一旦访问相关页面数据,恶意脚本就会被执行。常见于搜索、微博、社区贴吧评论等。
存储型XSS的攻击步骤:
攻击者将恶意代码提交到目标网站的数据库中。
用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在HTML中返回给浏览器。
用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。
这几种XSS攻击类型的区别
反射型的XSS的恶意脚本存在URL里,存储型XSS的恶意代码存在数据库里。
反射型XSS攻击常见于通过URL传递参数的功能,如网站搜索、跳转等。
存储型XSS攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等。
而基于DOM的XSS攻击中,取出和执行恶意代码由浏览器端完成,属于前端JavaScript自身的安全漏洞,其他两种XSS都属于服务端的安全漏洞。
XSS防范措施
由上面对XSS攻击的介绍我们知道,XSS攻击主要有两大步骤:
攻击者提交恶意代码
浏览器执行恶意代码
所以我们可以针对这两点来制定防范措施:
输入过滤
在用户提交时,由前端过滤输入,然后提交到后端,这种方法不可行,因为攻击者可能绕过前端过滤,直接构造请求,提交恶意代码。一般在写入数据库前,后端对输入数据进行过滤。虽然输入侧过滤能够在某些情况下解决特定的XSS问题,但会引入很大的不确定性和乱码问题。在防范XSS攻击时应避免此类方法。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。