Кто-нибудь знает твердую библиотеку / функцию в Javascript для очистки ввода пользователя - PullRequest
12 голосов
/ 14 января 2011

Ребята, знаете ли вы о солидной библиотеке / функции в Javascript для очистки пользовательского ввода.

Главным образом для предотвращения XSS-атак и подобных действий.

Было бы плюсом, если бы указанная библиотека имела возможность разрешать определенные теги и т. Д.

РЕДАКТИРОВАТЬ: Я использую node.js на серверной части.Вот почему мне нужна библиотека javascript для такого рода вещей.

Люди рекомендуют часть Google Caja здесь: Запрет XSS в Node.js / на стороне сервера javascript

Но я просто надеялся получить больше вариантов.

Ответы [ 3 ]

13 голосов
/ 14 января 2011

Я использую узел-валидатор от chriso .

Пример

var check = require('validator').check,
    sanitize = require('validator').sanitize

// Validate
check('test@email.com').len(6, 64).isEmail();       //Methods are chainable
check('abc').isInt();                               //Throws 'Invalid integer'
check('abc', 'Please enter a number').isInt();      //Throws 'Please enter a number'
check('abcdefghijklmnopzrtsuvqxyz').is(/^[a-z]+$/);

// Sanitize / Filter
var int = sanitize('0123').toInt();                  //123
var bool = sanitize('true').toBoolean();             //true
var str = sanitize(' \s\t\r hello \n').trim();      //'hello'
var str = sanitize('aaaaaaaaab').ltrim('a');        //'b'
var str = sanitize(large_input_str).xss();
var str = sanitize('&lt;a&gt;').entityDecode();     //'<a>'
2 голосов
/ 14 января 2011

Это эквивалент функции PHP strip_tags в Javascript. phpjs.org пригодится для подобных ситуаций.

http://phpjs.org/functions/strip_tags:535

0 голосов
/ 06 августа 2018

Для этого я использую DOMPurify, это достаточно хорошая и быстрая библиотека.Приведенные ниже примеры из официальной документации.

DOMPurify.sanitize('<img src=x onerror=alert(1)//>'); // becomes <img src="x">

DOMPurify.sanitize('<svg><g/onload=alert(2)//<p>'); // becomes <svg><g></g></svg>

DOMPurify.sanitize('<p>abc<iframe/\/src=jAva&Tab;script:alert(3)>def'); // becomes <p>abcdef</p>

DOMPurify.sanitize('<math><mi//xlink:href="data:x,<script>alert(4)</script>">'); // becomes <math><mi></mi></math>

DOMPurify.sanitize('<TABLE><tr><td>HELLO</tr></TABL>'); // becomes <table><tbody><tr><td>HELLO</td></tr></tbody></table>

DOMPurify.sanitize('<UL><li><A HREF=//google.com>click</UL>'); // becomes <ul><li><a href="//google.com">click</a></li></ul> 

Более подробную информацию можно найти, перейдя по этому URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...