草庐IT

安全方案

全部标签

javascript - Web Workers 是一种安全的方式来沙盒不受信任的 JavaScript 代码吗

我想知道WebWorker是否是对不受信任的JavaScript代码进行沙盒处理的安全方法。例如,在绘图应用程序的上下文中,开发人员可以在其中实现新的绘图工具,您可以将他们的代码放入webworker中,并且每当用户单击Canvas时,向他们发送包含光标位置的JSON消息,以及图像数据数组,当脚本完成时,它会传回一条包含新图像数据的消息。这是否安全,或者是否存在我没​​有想到的风险? 最佳答案 DOM对Webworker不可用,但可以访问同源内容,例如indexedDB。请参阅我的相关问题:Canworkersbesecureeno

javascript - Microsoft Edge 不接受内容安全策略的哈希

问题Content-Security-Policy应该默认将脚本和样式解析列入黑名单,并允许它基于各种指令来验证预期输出的哈希值。浏览器必须无法实现任何未预先提供匹配哈希的Javascript或CSS。具有匹配散列的代码应正常执行。MicrosoftEdge拒绝所有JS/CSS页内block。说明在MicrosoftEdge和任何其他浏览器中访问下面的实时演示链接。现场演示:http://output.jsbin.com/biqidoqebu演示原始源码#loading{color:transparent}#loading:after{color:green;content:"Styl

javascript - Aurelia 是否有 AngularJS $watch 替代方案?

我正在尝试将我当前的Angular.js项目迁移到Aurelia.js。我正在尝试做这样的事情:report.jsexportclassReport{list=[];//TODOlistChanged(newList,oldList){entercodehere}}report.html所以问题是:如何检测列表何时更改?在Angular.js中我可以做到$scope.$watchCollection('list',(newVal,oldVal)=>{mycode});也许Aurelia有类似的东西? 最佳答案 对于@bindable

javascript - 使用正则表达式验证字符串是否是 URL 安全的

我有一个网站,用户可以在其中选择用户名。目前,他们几乎可以输入任何字符,包括@!#等等我知道我可以使用正则表达式,这可能就是我要选择的。我将使用一个否定集,我假设它是正确的工具:[^@!#]那么,我怎样才能知道要放入那个集合中的所有非法字符呢?我可以开始手动放入那些显而易见的东西,例如!@#$%^&*(),但是有没有一种简单的方法可以做到这一点而无需手动将它们中的每一个都放入?我知道很多网站只允许包含字母、数字、破折号或下划线的字符串。类似的东西对我来说很管用。如有任何帮助,我们将不胜感激。谢谢S.O.! 最佳答案 不使用否定,只将

ES使用Ngram分词器实现wildcard高性能替代方案

1、wildcard检索wildcard检索可定义为:支持通配符的模糊检索,类似Mysql中的like模糊匹配模式,如下使用非分词器(ik)方式实现模糊匹配。创建常规支持wildcard索引PUTidx_recommend_words{"settings":{"index":{"number_of_shards":"5","number_of_replicas":"3","refresh_interval":"5s"}},"mappings":{"rec_words":{"_all":{"enabled":false},"dynamic_templates":[{"attribute_valu

在vue3+vite项目下按需引入vant报错Failed to resolve import解决方案

在vue3+vite项目下按需引入vant报错Failedtoresolveimport解决方案问题描述原因分析解决方案问题描述近日尝试使用vite+vue3+vant开发项目过程中,参考vant官网开发指南->快速上手->引入组件按照上述配置好后,运行vite环境报错:Failedtoresolveimport原因分析根据报错信息,发现是vant的样式引入路径不对。程序解析为:项目路径/node_modules/vant/lib/vant/es/组件/style实际应该是:项目路径/node_modules/vant/lib/vant/es/组件/style多了一个vant/lib路径。解决

javascript - 带有净化输入的 eval() 的安全性

这个问题在这里已经有了答案:WhenisJavaScript'seval()notevil?(27个答案)Isusingjavascripteval()safeforsimplecalculationsininputs?(2个答案)关闭8年前。我想使用eval()来解决简单的方程式和逻辑表达式,例如12*(4+3)。当输入(可能不受信任)被清理并且只允许数字时,客户端eval的安全性如何,+-*/()|&!以及“真”和“假”这两个词?可用的方程式JS解析器对我来说太大而且功能太强大。我自己拼凑了一个,但是与评估相比,它的代码行很多,而且还不完美。编辑:是的,我想我特别想问的是,有人可以

javascript - 等待所有ajax回调被执行的最佳解决方案

想象一下,我们必须通过ajax请求资源。我想在触发所有回调时执行一些操作。除了这种方法之外,如何做到这一点:(function($){varsources=['http://source1.com','http://source2.com'],guard=0,someHandler=function(){if(guard!=sources.length){return;}//dosomeactions};for(varidxinsources){$.getJSON(sources[idx],function(){guard++;someHandler();})}})(jQuery)我在

javascript - jQuery Mobile嵌套列表刷新解决方案

我正在尝试使用jqueryMobile1.1版找到刷新嵌套列表的解决方法,该版本目前为您留下空白页面。我知道一个现有的解决方案是启用pushState,但这会将您送回到列表的根目录,并在您的下一个嵌套ListView中处理历史状态。我在下面提出的解决方案并不完美,但适用于iOS和更新的android。$(document).bind("mobileinit",function(){varurlEx='#&ui-page=5-0';//endingofnestedlisturlif(window.location.href.indexOf(urlEx)!=-1){history.repl

javascript - Firefox 用户禁用 cookie 和 localStorage 的解决方案 - polyfill 不可能

在我们的一位用户投诉并运行一些测试后,Firefox15和16(可能还有旧版本)似乎可以做到这一点,因此如果您禁用cookie,您也会禁用localStorage。您甚至无法为其创建polyfill,因为每当您尝试访问window.localStorage时,您都会收到Error:Theoperationisinsecure.抛出trycatch会让您检查它是否被禁用,但不会让您用自己的解决方案替换变量。以下快速polyfill将不起作用,因为FF忽略设置变量并在尝试访问它时会抛出相同的错误:try{window.localStorage;}catch(err){window.loca