Безопаснее ли использовать свойство 'value' или 'textContent'? - PullRequest
0 голосов
/ 15 октября 2018

Я хочу передать строку электронной почты в API HIBP .Чтобы обеспечить некоторую должную осмотрительность с моей стороны (мне нравится Трой Хант, и я не хочу создавать для него ненужные проблемы), я хочу максимально тщательно санировать пользовательский ввод.

ОтчастиВ ходе исследования я натолкнулся на два метода получения пользовательского ввода и его передачи в API: textContent и value .

Соответствующий код

var account = document.getElementById('input')

....

fetch('https://haveibeenpwned.com/api/v2/breachedaccount/' + account.value, {
          timeout: 1500,
          userAgent: 'test'
        })
        .then(doStuff)

Этот код использует свойство .value, которое, насколько я понимаю, передает строку в запрос на выборку.Мне интересно, если textContent, который передает только ... текстовое содержимое ... как упомянуто этот парень лучше;может, плохие парни могут сделать больше со строкой?

Итак, с этим вторым методом код будет выглядеть примерно так:

var account = document.getElementById('input')
var email = account.textContent;

...

fetch('https://haveibeenpwned.com/api/v2/breachedaccount/' + email, {
              timeout: 1500,
              userAgent: 'test'
            })
            .then(doStuff)

Примечание: я новичок в JS и кодебезопасность в целом, поэтому любая информация полезна.

1 Ответ

0 голосов
/ 15 октября 2018

textContent и value оба возвращают строку.

value применяется только к элементам управления формы и возвращает их текущее значение.

textContent применяется к любому элементу и возвращаеттекст между начальным тегом и конечным тегом.

Вход не имеет никакого текстового содержимого (или конечного тега в этом отношении), поэтому textContent не является удаленно полезным в вашем контексте.

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