社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
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代码执行的过程中才发生可攻击
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!