Есть ли риск передать html в ответе RESTful API и вставить его прямо в веб-страницу? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь понять, есть ли вероятность для XSS-атаки , когда наша конечная точка API возвращает ответ json со свойством, возвращающим html-данные:

например

https://www.link-to-my-website.com/api/v1/data

Resp:

{
  footer: "<a href='https://www.link-to-my-website.com'>My Link</a>"
}

, а затем в React.js (или любом другом интерфейсе js) сделать что-то вроде:

import React from 'react';
import PropTypes from 'prop-types';

export default class MyFooterComponent extends React.Component {
  render() {
    return (
      <div className="footer" dangerouslySetInnerHTML={{ __html: this.props.footer }} />
    );
  }
}

Я ставлюмои конечные пользователи в опасности?и я должен дезинфицировать или просто не передавать данные таким образом?Или я здесь слишком параноик?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Да, такая реализация подвержена атакам внедрения скриптов.Если вы поддерживаете API, это может быть не такой большой проблемой, но вы никогда не должны делать это с помощью стороннего API.Но просто чтобы быть в безопасности, не идите на эту реализацию.Вы можете прочитать больше об этом здесь .

0 голосов
/ 18 февраля 2019

Если пользовательский ввод отсутствует, проблема XSS отсутствует.Из ссылки owasp:

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

Если был пользовательский ввод, тогда да, вы бы хотели специально санировать этот ввод перед отправкой ответа и внедрением его в html.

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