nik*_*ong 5 javascript svg node.js browserify
我一直在寻找使用像SVGO这样的库来清除前端用户提交的SVG代码.SVGO是一个基于node.js的库,它通常在后端工作,所以我一直在努力探索如何从前端到后端发送SVG代码然后让清理后的代码重新启动前端.
当我试图解决这个问题时,我检查了他们的网络应用程序示例,经过检查,在链接脚本中运行代码,我通常会在前端的后端看到这些代码.特别是,他们的许多功能都有签名(完整脚本):
1: [function(require, module, exports) {
"use strict";
var loadScripts = require("./load-scripts"),
...
module.exports = exportedFunction;
}]
Run Code Online (Sandbox Code Playgroud)
非常令人迷惑,因为这是典型的JS,我已经与后端,特别是相关的require,module.exports语法仅举几例.
题
感谢您的任何见解.我正在努力确保以最符合Web标准的方式构建我的项目.
回答:
他们使用像browserify或requirejs这样的模块加载器来允许在浏览器中使用commonjs模块.这并不意味着所有库都可以在客户端工作,使用节点io模块不会起作用.
在发送之前在浏览器端进行一些清理会很有用(节省几KB).浏览器的优点是自由的,你不支付托管在客户端上运行的代码,一些optionnal消毒可以在浏览器中运行.但是:见3.
即使很容易进行客户端清理,也应该始终检查并清理后端的用户输入,尤其是.svg文件,因为它们可能包含<script>可能允许XSS的标记.