Дополнительное экранирование js

192
02 октября 2018, 18:00

Есть поле textarea. В это поле юзер может вставлять любые данные. Предполагается что будет вставлять валидный js код.

Это все отправляется на сервер и пишется в бд. Используется active record, там все само экранируется. Я вставляю данные в бд как есть.

Если нужно отредактировать эти данные, мы получаем от сервера JSON, обратите внимание на свойство "params" оно так же содержит JSON строку (не спрашивайте почему так)

{
    "error": 0,
    "data": {
        "status": "1",
        "params": "{\"third_party_status\":\"false\",\"third_party_code\":\"<script type=\\\"text\\\/javascript\\\">\\n\\talert('Test');\\t\\t\\t\\t\\n<\\\/script>\\n\"}",
        "created_at": "2018-07-28 18:11:03",
        "updated_at": "2018-07-28 18:28:25"
    }
}

Вроде как все заэкранировано? Теперь мне нужно вставить полученый js код снова в textarea.

// очень упрощенно
var data = JSON.parse(response);
var params = JSON.parse(data.params);
// это я вставляю в textarea
params.third_party_code 

Вопрос: есть ли здесь потенциальная уязвимость?

READ ALSO
Автоматический вход в приложение firebase

Автоматический вход в приложение firebase

Приветсвую всех, есть web-приложение построенное на Vue + FirebaseВопрос заключается в том, как происходит автоматический вход в приложение после...

188
Если есть span c классом добавить родителю class (JS) [дубликат]

Если есть span c классом добавить родителю class (JS) [дубликат]

Данный вопрос уже был задан и имеет решение:

196
JS 2D массив loop

JS 2D массив loop

Суть задачи такова: через Mathrandom создаем 6 массивов из 3 элементов

174