html转义和js代码攻击及防止攻击 - Go语言中文社区

html转义和js代码攻击及防止攻击


1.html转义?

html转义是将特殊字符或html标签转换为与之对应的字符。如:< 会转义为 <> 或转义为 >像“”,即避免了js注入攻击又真实的显示了用户输入。

2.如何转义?

      *通过 js 实现:*

在这里插入图片描述

    *通过 jquery 实现*

在这里插入图片描述

3.使用

var msg=htmlEncodeJQ('<script>alert('test');</script>');
$('body').append(msg);

  建议使用jquery实现,因为有更好的兼容性

-----------------------------------------------------------转义---------------------------------------------------------------
js代码攻击?

跨站脚本攻击 (Cross Site Scripting) 是一种允许攻击者在另外一个用户的浏览器中执行恶意代码脚本的脚本注入式攻击。对于攻击者来说,能够让受害者浏览器执行恶意代码的唯一方式,就是把代码注入到受害者从网站下载的网页中。

每当接受用户输入的内容并重新显示这些内容时,网站就很容易遭受 JavaScript 注入攻击。让我们研究一个容易遭受 JavaScript 注入攻击的具体应用程序。假设已经创建了一个客户反馈网站。客户可以访问网站并输入对产品的反馈信息。当客户提交反馈时,反馈信息重新显示在反馈页面上。

for example:

在输入框写js代码:
在这里插入图片描述

发送到后台,数据是这样的
在这里插入图片描述

存到数据库是这样的

在这里插入图片描述

存到数据路后, 去前台取数据发现页面变成了这样:
在这里插入图片描述

--------------------------------------------------- js 代码攻击 ------------------------------------------------
防js代码攻击?

1、编码,就是转义用户的输入,把用户的输入解读为数据而不是代码 (反转义)
2、校验,对用户的输入及请求都进行过滤检查,如对特殊字符进行过滤,设置输入域的匹配规则等。
对于验证输入,我们既可以在服务端验证,也可以在客户端验证
对于持久性和反射型攻击,服务端的验证是必须的,服务端支付的任何语言都能够做到
而对于基于DOM的XSS攻击,验证输入在客户端必须执行,因为从服务端来说,所有发出的页面内容是正常的,只是在客户端js代码执行的过程中才发生可攻击

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_43288277/article/details/82874568
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-04-10 20:20:31
  • 阅读 ( 563 )
  • 分类:前端

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢