如何清理Deno中的用户输入?

问题描述 投票:0回答:2

我对后端JavaScript的安全性了解不多。

我可以想象清理输入的唯一方法是使用正则表达式并替换所有不需要的字符,或者拆分整个字符串并过滤/映射出不需要的字符,然后重新结合在一起。

我还在Deak上使用Oak模块。

sanitize deno
2个回答
0
投票

您可以尝试此https://deno.land/x/html_entities根据lib文档:

您可以从XmlEntities模块中实现HTML有效性和XSS攻击防护。

import { XmlEntities } from "https://deno.land/x/[email protected]/mod.js";

XmlEntities.encode('<>"\'&©®'); // &lt;&gt;&quot;&apos;&amp;©®
XmlEntities.encodeNonUTF('<>"\'&©®'); // &lt;&gt;&quot;&apos;&amp;&#169;&#174;
XmlEntities.encodeNonASCII('<>"\'&©®'); // <>"\'&©®
XmlEntities.decode('&lt;&gt;&quot;&apos;&amp;&copy;&reg;&#8710;'); // <>"'&&copy;&reg;∆

0
投票

您可以重复使用sanitize npm软件包:

npm i -g sanitize

然后您可以像这样使用它:

import { createRequire } from "https://deno.land/std/node/module.ts";

const require = createRequire(import.meta.url);
const sanitizer = require("sanitizer");

name = sanitizer.value(name, "string");
surname = sanitizer.value(surname, "string");

或者您可以用另一个消毒库替换该库并使用以下命令运行Deno脚本:deno run --allow-read --unstable script.ts

© www.soinside.com 2019 - 2024. All rights reserved.