最近我周围的很多人也接触了obsidian,且折服于dataview的功能强大
但是却又不愿意认真研就语法,选择拿来就用或者干脆请人编写
我这里想要谈论的这个话题正是想讨论一下代码拿来主义的不安全性,如下:
DVjs很强,可以完成绝大部分的js操作
但有一个显而易见的问题,它可以进行危险的代码注入
因此复制使用不明来历的代码的时候一定要小心
最好经过检查后再进行粘贴渲染,否则安全性堪忧
比如如下代码:
!!(警告注释内内容请自行衡量后,再取消注释,不予负责)!!
如果取消注释后不知道如何处理:
- 解决方案1:在系统自带的资源管理器内删除插入该段代码段的md文件,重新启动OB即可
- 解决方案2:在第三方编辑器内打开插入该代码段的md文件,重新启动OB即可
dv.paragraph('# <center>这是一段注入示例,请不要害怕</center>\n<span>渲染这段代码后,OB内所有页面的 [ p>span ] 标签后将缀上特殊文字,此时,==进入源码模式,删除这段代码并重启OB==,即可解决\n# <center>如果惊吓到您,万分抱歉!</center>');
var ipck = document.createElement('style');
ipck.type = 'text/css';
ipck.innerText = 'p>span::after {content: "比如这样的CSS注入,或许这样看起来无害,但既然可以进行CSS注入,自然可以进行其他类别的注入攻击";background-color: yellow;color: red;font-weight: bold;}';
//除非确定可以解决,请不要轻易尝试请不要轻易尝试↓↓↓↓
//请不要轻易尝试↓↓↓↓
//如果您觉得危害不够的话,可以尝试将下一行注释取消,我想画面大概更有震撼性
//ipck.innerText = 'div::after {content: "比如这样的CSS注入,或许这样看起来无害,但既然可以进行CSS注入,自然可以进行其他类别的注入攻击";background-color: yellow;color: red;font-weight: bold;}';
//除非确定可以解决,请不要轻易尝试↑↑↑↑
//除非确定可以解决,请不要轻易尝试,请不要轻易尝试↑↑↑↑
var head = document.getElementsByTagName('head')[0];
head.appendChild(ipck);