Как дезинфицировать пользовательский ввод в Deno?

Я мало что знаю о безопасности, когда дело доходит до Backend-JavaScript.

Единственный способ, которым я могу представить очистку ввода, - это использовать регулярное выражение и заменить все нежелательные символы или разделить всю строку и отфильтровать/сопоставить нежелательные символы, а затем снова объединиться.

Я также использую модуль Oak для Deno.


person Damian Toczek    schedule 06.06.2020    source источник
comment
Существует несколько типов атак, которые вы хотите предотвратить. Один модуль не может предотвратить все атаки. Вы можете проверить модуль npm шлема для справки.   -  person xdeepakv    schedule 07.06.2020


Ответы (2)


Вы можете попробовать это https://deno.land/x/html_entities Согласно документации lib:

Верность HTML и предотвращение атак XSS можно получить с помощью модуля XmlEntities.

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;∆
person Sandeep Patel    schedule 06.06.2020

вы можете повторно использовать пакет 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

person Rachid Oussanaa    schedule 07.06.2020