Вопрос по html, jquery – Есть ли у jQuery val () и prop () методы html-escape-значений?

23

Я не могу найти ничего в документации оval() а такжеprop() и сбежать.

Они предназначены для экранирования значений при использовании в качестве сеттеров?

Хорошая ссылка для браузера на источник jQuery - & gt;james.padolsey.com/jquery ManseUK

Ваш Ответ

3   ответа
0

что вам НЕОБХОДИМО беспокоиться при вставке значений в атрибуты с побочными эффектами, которые могут вызвать выполнение кода. К ним относится атрибут src изображения, который можно использовать для xss. Увидеть:https://www.owasp.org/index.php/Script_in_IMG_tags

24

.val() используется для установки поля формыvalue атрибута, так что экранирование там действительно не нужно. Вы будете устанавливать значение через DOM, так что это не похоже на то, как вы конструируете HTML с помощью конкатенации строк..prop()с другой стороны, он вообще не взаимодействует с атрибутами - только свойства DOM, поэтому вам не нужно работать с HTML, избегая их.

Изменить: ради пояснения, я предполагаю, что вы спрашиваете об этом, потому что вы обеспокоены.prop() или же.val() как вектор атаки XSS (или просто возможность выстрелить себе в ногу)? Если это так, вам следует помнить, что при настройке атрибутов и свойств через DOM установленные вами значения, по сути, помещаются в песочницу для атрибута или значения, с которым вы взаимодействовали. Например, учитывая следующее:

<div id="foo"></div>

И вы попытались злоупотребить значением атрибута, например:

$('#foo').attr('rel', '"></div><script>alert("bang");</script><div rel="');

Вы можете быть обеспокоены тем, что это приведет к чему-то вроде следующего:

<div id="foo" rel=""></div><script>alert("bang");</script><div rel=""></div>

Это никогда не случится, хотя. Вы действительно будете иметьrel атрибут со зловредной строкой в качестве значения, но новые разметки или узлы DOM не будут созданы. Сама строка не экранирована - она просто не интерпретируется как разметка. Это просто строка, и это все.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded.val()Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededyes, be very careful with generating HTML via string concatenationError: User Rate Limit ExceededencodeForHTMLAttribute()Error: User Rate Limit Exceededowasp.org/index.php/…
Error: User Rate Limit ExceededvalueError: User Rate Limit Exceededevil"stringError: User Rate Limit ExceededneverError: User Rate Limit Exceeded Matt Fenwick
Error: User Rate Limit Exceeded
8

Сами методы также не делают экранирования, базовые API DOM, которые они используют, также работают со строками, а не с HTML.

Как только вы начинаете использовать JavaScript, вам почти никогда не нужно беспокоиться о синтаксисе HTML, единственное исключение, о котором я могу подумать, - это работа сinnerHTML свойство, которое явно имеет дело с (де) сериализацией DOM в и из HTML.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы