什么是js代码攻击:

Javascript注入攻击指的是通过在网页地址后加JavaScript代码,影响系统运作。
使用 JavaScript 注入攻击可以执行跨站脚本 (XSS) 攻击。在跨站脚本攻击中,可以窃取保密的用户信息并将信息发送到另一个网站。
JavaScript注入漏洞能发生作用主要依赖两个关键的动作,一个是用户要能从界面中注入JavaScript到系统的内存或者后台存储系统中;二是系统中存在一些UI会展示用户注入的数据。
比如注入漏洞最常见的就是发生在各种类型的名字中,比如系统中的人名等等,因为名字往往会在各种系统上显示,如果在某个用户输入名字的时候注入了脚本,那么受其影响的各个系统都有发生注入漏洞的风险。

什么是xss:

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

xss攻击的危害:

1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击

xss攻击的防御

XSS攻击的核心就是浏览器渲染DOM的时候将文本信息解析成JS脚本从而引发JS脚本注入。那么XSS攻击的防御手段就是基于浏览器渲染这一步去做防御。
只要我们使用HTML编码将浏览去需要渲染的信息编码后,浏览器在渲染DOM元素的时候,会自动解码需要渲染的信息,将上述信息解析成字符串而不是JS脚本,这就是我们防御XSS攻击的核心想法。

A:视图中的 HTML 编码
阻止 JavaScript 注入攻击的一种简单方法是重新在视图中显示数据时,用 HTML 编码任何网站用户输入的数据。
使用 HTML 编码一个字符串的含意是什么呢?使用 HTML 编码字符串时,危险字符如 <和 > 被替换为 HTML 实体,如 <和 >。所以,当使用 HTML 编码字符串 时,它将转换为 <script>alert(“Boo!”)</script>


B:控制器中的 HTML 编码
除了在视图中显示数据时使用 HTML 编码数据,还可以在将数据提交到数据库之前使用 HTML 编码数据

C:使用前端框架
一些前端框架,比如vue、angular默认情况下启动了XSS攻击的防御,所以在使用这些框架的情况下,我们都不需要担心XSS攻击的问题。