易受攻击的 JavaScript 库漏洞,除了更新js,还有什么办法可以解决
设置拦截器,对关键字进行拦截或者转义
e = ev || window.event;
scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
if(e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble = true;
}
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
if(target.addEventListener){
target.addEventListener("click",function,false);
}else{
target.attachEvent("onclick",function);
}
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else {
xhr = new ActiveXObject("Microsoft XMLHTTP");
}
function mouse(event){
var e= event || window.event;
if(event){
return e.button;
}else if(window.event){
switch(e.button){
case 1:return 0;
case 4:return 1;
case 2:return 2;
}
}
}
x = event.x ? event.x:event.pageX;
var source = event.target || event.srcElement;
var target = event.relatedTarget || event.toElement;
if(navigator.appName.indexOf("Explorer")>-1){
document.getElementById("element").innerText = "IE";
}else{
document.getElementById("element").textContent = "Firefox";
}
解决方法:统一使用 var 定义变量。
// firefox CSS
-moz-user-select:none;
// IE JS
obj.onselectstart = function(){
return false;
}
这里是万物之恋,我们下次再见了!
针对易受攻击的JavaScript库漏洞,除了更新js以外,还可以采取以下措施:
检测和升级已安装的补丁和安全漏洞。确保所有相关的包、组件和依赖项都是最新的,避免版本中的安全漏洞。
实施CSP(内容安全策略)。CSP可防止XSS(跨站脚本攻击)发生。通过在网页中(Content-Security-Policy)标头中定义源,白名单,域名和可以执行的脚本,实现对网页加载的资源(脚本,图片,CSS等)的控制,有助于防止恶意脚本(包括第三方脚本和内联脚本)的植入。
使用安全的文本编辑器。由于编辑器可能会自动转换某些字符或脚本,攻击者有机会注入恶意代码。因此,安全的编辑器可以使修改所需的管理和审计过程更加简单。
组织自己的脚本并仅在运行时提供它们。为了减少在运行时添加脚本的可能性,团队可以遵循一系列良好的实践:不要使用服务器端数据插入到HTML代码中,使用AJAX或iframe装载内容。此外,可以使用自己的Javascript库,并仅在运行时提供它们。
使用闭包来保护代码。闭包意味着函数被封闭,所有变量都在函数左右。保护代码并防止代码中的全局变量泄露。
声明和使用变量时,要切记不要使用eval()函数。eval()函数可以通过将字符串转换为可执行代码字符串的功能,导致恶意代码注入。
静态代码分析和漏洞扫描。团队可以使用静态代码分析和漏洞扫描工具,来检测可疑的代码和漏洞,并在发布前进行审查和修复。
综上所述,除了更新JS以外,有很多其他措施可以帮助预防易受攻击的JavaScript库漏洞问题的发生。团队必须密切关注最新的安全更新,以确保代码库的安全性。