Небезопасная проблема '^' jshint

Я получаю эту ошибку jshint «Небезопасно '^'» из этой строки javascript:

var test = content.replace(/d=([^&]*)/, 'd=test');

Кто-нибудь знает, как я могу решить эту проблему?


person amateur    schedule 30.08.2011    source источник


Ответы (1)


Установите флажок Допускать . и [^...]. в /RegExp/.

правда если . и [^...] должны быть разрешены в литералах RegExp. Они соответствуют большему количеству материалов, чем можно было бы ожидать, что позволяет злоумышленникам запутать приложения. Эти формы не следует использовать при проверке в безопасных приложениях.

Источник.

person alex    schedule 30.08.2011
comment
Спасибо за это, но какие изменения мне нужно внести в мой javascript, чтобы исправить ошибку? - person amateur; 31.08.2011
comment
@amateur Я бы сам об этом не беспокоился. Крокфорд считает, что это слишком либерально, но это мнение только одного человека. Вы можете заменить его чем-то вроде \w или \d в зависимости от того, что вы там ожидаете. - person alex; 31.08.2011